// USE CASE: Creating a compound Document Definition public static void Creating_a_compound_Document_Definition(IEngine engine) { trace("Create an empty Document Definition in memory..."); IDocumentDefinition newDefinition = engine.CreateDocumentDefinition(); assert(newDefinition != null); trace("Set default language..."); ILanguage language = engine.PredefinedLanguages.FindLanguage("English"); assert(language != null); newDefinition.DefaultLanguage = language; trace("Create a new fixed section from an XFD file..."); newDefinition.DefaultTextType = TextTypeEnum.TT_Handprinted; ISectionDefinition newSection1 = newDefinition.Sections.AddNew("Banking"); newSection1.LoadXFDDescription(SamplesFolder + "\\SampleMisc\\Banking_eng.xfd"); trace("Create a new flexible section from an AFL file..."); newDefinition.DefaultTextType = TextTypeEnum.TT_Normal; ISectionDefinition newSection2 = newDefinition.Sections.AddNew("Invoice"); newSection2.LoadFlexibleDescription(SamplesFolder + "\\SampleMisc\\Invoice_eng.afl"); // Modify the template as required. In this sample we need to loosen some constraints IPageAnalysisParams analysisParams = engine.CreatePageAnalysisParams(); analysisParams.CopyFrom(newDefinition.PageAnalysisParams); analysisParams.MaxHorizontalShrinkPercent = 20; analysisParams.MaxVerticalShrinkPercent = 20; newDefinition.PageAnalysisParams = analysisParams; trace("Check the Document Definition..."); assert(newDefinition.Check() == true); // You can save the new Document Definition to a file or use it from memory traceBegin("Use the Document Definition in FlexiCaptureProcessor..."); IFlexiCaptureProcessor processor = engine.CreateFlexiCaptureProcessor(); processor.AddDocumentDefinition(newDefinition); // Add images for a single multipage document processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_1.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_2.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_3.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Invoices_2.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Invoices_3.tif"); // Recognize the document IDocument document = processor.RecognizeNextDocument(); assert(document != null); assert(document.DocumentDefinition != null); assert(document.Pages.Count == 5); processor.ExportDocumentEx(document, SamplesFolder + "\\FCEExport", "Mixed", null); traceEnd("OK"); }
// USE CASE: Creating a Document Definition from an XML Form Definition public static void Creating_a_Document_Definition_from_an_XML_Form_Definition(IEngine engine) { trace("Create a Document Definition from an *.xfd file..."); string formDescriptionFilePath = SamplesFolder + "\\SampleMisc\\Banking_eng.xfd"; IDocumentDefinition newDefinition = engine.CreateDocumentDefinitionFromXFD(formDescriptionFilePath, "English"); // Modify the template as required. In this sample we need to loosen some constraints IPageAnalysisParams analysisParams = engine.CreatePageAnalysisParams(); analysisParams.CopyFrom(newDefinition.PageAnalysisParams); analysisParams.MaxHorizontalShrinkPercent = 20; analysisParams.MaxVerticalShrinkPercent = 20; newDefinition.PageAnalysisParams = analysisParams; // You can save the new Document Definition to a file or use it from memory traceBegin("Use the Document Definition in FlexiCaptureProcessor..."); IFlexiCaptureProcessor processor = engine.CreateFlexiCaptureProcessor(); processor.AddDocumentDefinition(newDefinition); // Add images for a single multipage document processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_1.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_2.tif"); processor.AddImageFile(SamplesFolder + "\\SampleImages\\Banking_3.tif"); // Recognize the document and check the result IDocument document = processor.RecognizeNextDocument(); assert(document != null); assert(document.DocumentDefinition != null); assert(document.Pages.Count == 3); // Export the result processor.ExportDocumentEx(document, SamplesFolder + "\\FCEExport", "Banking", null); traceEnd("OK"); }