//---------------------------------------------------------------------------------------
// Copyright (c) 2001-2025 by Apryse Software Inc. All Rights Reserved.
// Consult legal.txt regarding legal and license information.
//---------------------------------------------------------------------------------------
// !Warning! This file is autogenerated, modify the .codegen file, not this one
// (any changes here will be wiped out during the autogen process)

#ifndef PDFTRON_H_CDataExtractionModule
#define PDFTRON_H_CDataExtractionModule

#ifdef __cplusplus
extern "C" {
#endif

#include <C/Common/TRN_Types.h>
#include <C/Common/TRN_Exception.h>


struct TRN_DataExtractionModule_tag;
typedef struct TRN_DataExtractionModule_tag* TRN_DataExtractionModule;

enum TRN_DataExtractionModule_DataExtractionEngine
{
    e_DataExtractionModule_Tabular = 0,
    e_DataExtractionModule_Form = 1,
    e_DataExtractionModule_DocStructure = 2,
    e_DataExtractionModule_FormKeyValue = 3,
    e_DataExtractionModule_GenericKeyValue = 4,
    e_DataExtractionModule_DocClassification = 5
};
TRN_API TRN_DataExtractionModuleIsModuleAvailable(enum TRN_DataExtractionModule_DataExtractionEngine engine, TRN_Bool* result);
TRN_API TRN_DataExtractionModuleExtractDataAsString(TRN_UString input_pdf_file, enum TRN_DataExtractionModule_DataExtractionEngine engine, const TRN_OptionBase* options, TRN_UString* result);
TRN_API TRN_DataExtractionModuleExtractData(TRN_UString input_pdf_file, TRN_UString output_json_file, enum TRN_DataExtractionModule_DataExtractionEngine engine, const TRN_OptionBase* options);
TRN_API TRN_DataExtractionModuleExtractDataAsStringWithOptsObj(TRN_UString input_pdf_file, enum TRN_DataExtractionModule_DataExtractionEngine engine, TRN_Obj options, TRN_UString* result);
TRN_API TRN_DataExtractionModuleExtractDataWithOptsObj(TRN_UString input_pdf_file, TRN_UString output_json_file, enum TRN_DataExtractionModule_DataExtractionEngine engine, TRN_Obj options);
TRN_API TRN_DataExtractionModuleDetectAndAddFormFieldsToPDFWithOptsObj(TRN_PDFDoc doc, TRN_Obj options);
TRN_API TRN_DataExtractionModuleDetectAndAddFormFieldsToPDF(TRN_PDFDoc doc, const TRN_OptionBase* options);
TRN_API TRN_DataExtractionModuleExtractToXLSX(TRN_UString input_pdf_file, TRN_UString output_xlsx_file, const TRN_OptionBase* options);
TRN_API TRN_DataExtractionModuleExtractToXLSXWithOptsObj(TRN_UString input_pdf_file, TRN_UString output_xlsx_file, TRN_Obj options);
TRN_API TRN_DataExtractionModuleExtractToXLSXWithFilter(TRN_UString input_pdf_file, TRN_Filter output_xlsx_stream, const TRN_OptionBase* options);
TRN_API TRN_DataExtractionModuleExtractToXLSXWithFilterAndOptsObj(TRN_UString input_pdf_file, TRN_Filter output_xlsx_stream, TRN_Obj options);



#ifdef __cplusplus
} // extern C
#endif

#endif /* PDFTRON_H_CDataExtractionModule */
