.. _group__a3d__markup__rtf:

###########
RTF parsing
###########

Set of functions used to parse RTF strings.

RTF strings can be present in :c:struct:`~A3DMDFCFDraftingRowData`\ , :c:struct:`~A3DMarkupGDTData`\ , :c:struct:`~A3DMarkupRichTextData`


Sample code
===========


::

   /*codetogeteachindependentfieldofRTFstring*/
   /*pRTF_UTF8isanRTFstring**/
   A3DVoid*pRTF=NULL;
   if(A3DMkpRTFInit(pRTF_UTF8,pRTF)==A3D_SUCCESS)
   {
   A3DRTFFieldDatasRTFFieldData=A3D_MAKE_DATA(A3DRTFFieldData);
   
   while(A3DMkpRTFGetField(pRTF,&sRTFFieldData)==A3D_SUCCESS)
   {
   //.......
   //TODO:processsRTFFieldData
   //.......
   
   A3DMkpRTFGetField(A3D_NULL_HANDLE,&sRTFFieldData)//memorycleanupofthesRTFFieldDatastructure
   }
   
   A3DMkpRTFDelete(pRTF);
   }


**Returns**


   ``A3D_SUCCESS``\ on success, or an error code on failure


.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DMkpRTFFieldData`

.. rst-class:: kind-group kind-enumeration

.. rubric:: Enumerations
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:enum:`~A3DEMarkupSymbol`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DMkpRTFFieldCreate`
* :c:func:`~A3DMkpRTFFieldGet`
* :c:func:`~A3DMkpRTFFieldDelete`

.. toctree::
   :maxdepth: 1
   :hidden:

   ../structures/A3DMkpRTFFieldData
   ../enums/A3DEMarkupSymbol
   ../functions/A3DMkpRTFFieldCreate
   ../functions/A3DMkpRTFFieldGet
   ../functions/A3DMkpRTFFieldDelete


