#include "ltocr.h"
L_LTOCR_API L_INT EXT_FUNCTION L_OcrDocument_SaveXml(document, fileName, xmlOptions, outputOptions)
Converts the cumulated recognition result stored in the pages of this OCR document to XML data and stores it in a disk file with XML options.
Handle to the OCR document.
The output file name to save the XML data to.
Options to use when creating the XML data.
A combination of one or more OcrXmlOutputOptions enumeration members that specify the XML generation options.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
Converts the cumulated recognition result stored in the pages of this OCR document to XML data and stores it in a disk file with XML options.
Required DLLs and Libraries
L_INT L_OcrDocument_SaveXmlExample(){BITMAPHANDLE bitmap = { 0 };L_OcrEngine ocrEngine = NULL;L_OcrPage ocrPage = NULL;L_OcrDocumentManager ocrDocumentManager = NULL;L_OcrDocument ocrDocument = NULL;// Create an instance of the engineL_INT retCode = L_OcrEngineManager_CreateEngine(L_OcrEngineType_Advantage, &ocrEngine);if(retCode != SUCCESS)return retCode;// Start the engine using default parametersL_OcrEngine_Startup(ocrEngine, NULL, OCR_ADVANTAGE_RUNTIME_DIR);// Load an image to processL_LoadBitmap(MAKE_IMAGE_PATH(L_TEXT("Ocr1.tif")), &bitmap, sizeof(BITMAPHANDLE), 0, ORDER_RGB, NULL, NULL);// Add the image to an OCR pageL_OcrPage_FromBitmap(ocrEngine, &ocrPage, &bitmap, L_OcrBitmapSharingMode_AutoFree, NULL, NULL);// Transfer ownership to the OCR pagebitmap.Flags.Allocated = 0;// Recognize itL_OcrPage_Recognize(ocrPage, NULL, NULL);// Create an OCR documentL_OcrEngine_GetDocumentManager(ocrEngine, &ocrDocumentManager);//L_OcrDocumentManager_CreateDocument(ocrDocumentManager, &ocrDocument, L_OcrCreateDocumentOptions_AutoDeleteFile, NULL);L_OcrDocumentManager_CreateDocument(ocrDocumentManager, &ocrDocument, L_OcrCreateDocumentOptions_InMemory, NULL);// In Document File Mode, add OcrPage to OcrDocument after recognitionL_OcrDocument_AddPage(ocrDocument, ocrPage);// Done with this, so we can dispose of it.L_OcrPage_Destroy(ocrPage);ocrPage = NULL;// Save the result XML to a disk file// Only save the words not characters, if we want the characters// we need to change the options to OcrXmlOutputOptions.CharactersL_OcrWriteXmlOptions ocrWriteXmlOptions;ocrWriteXmlOptions.StructSize = sizeof(L_OcrWriteXmlOptions);ocrWriteXmlOptions.Encoding = L_OcrXmlEncoding_UTF8;ocrWriteXmlOptions.Formatted = true;wsprintf(ocrWriteXmlOptions.Indent, TEXT(" "));retCode = L_OcrDocument_SaveXml(ocrDocument, MAKE_IMAGE_PATH(L_TEXT("Ocr1.xml")), &ocrWriteXmlOptions, L_OcrXmlOutputOptions_None);//CLEANUPif(bitmap.Flags.Allocated)L_FreeBitmap(&bitmap);if(ocrPage != NULL)L_OcrPage_Destroy(ocrPage);if(ocrDocument != NULL)L_OcrDocument_Destroy(ocrDocument);if(ocrEngine != NULL)L_OcrEngine_Destroy(ocrEngine);return SUCCESS;}