Free Trial
Web API version
Licensing
Request A Quote
HAVE QUESTIONS OR NEED HELP? SUBMIT THE SUPPORT REQUEST FORM or write email to SUPPORT@BYTESCOUT.COM
Create Custom Template | Delphi
CustomTemplate.dpr:
program CustomTemplate; //*******************************************************************************************// // // // Download Free Evaluation Version From: https://bytescout.com/download/web-installer // // // // Also available as Web API! Get Your Free API Key: https://app.pdf.co/signup // // // // Copyright � 2017-2020 ByteScout, Inc. All rights reserved. // // https://www.bytescout.com // // https://pdf.co // // // //*******************************************************************************************// {$APPTYPE CONSOLE} uses SysUtils, ActiveX, ByteScout_DocumentParser_TLB in 'C:\Program Files\Borland\BDS\4.0\Imports\ByteScout_DocumentParser_TLB.pas'; var document_parser: _DocumentParser; json: string; const CUSTOM_TEMPLATE: string = 'SampleTemplate.yml'; INPUT_DOCUMENT: string = 'SampleInvoice.pdf'; begin // disable floating point exception to conform to .NET floating point operations behavior. System.Set8087CW($133F); // required for console applications, initializes ActiveX support CoInitialize(nil); // create and activate DocumentParser instance document_parser := CoDocumentParser.Create(); document_parser.RegistrationName := 'demo'; document_parser.RegistrationKey := 'demo'; WriteLn(Format('Loading template "%s"', [CUSTOM_TEMPLATE])); WriteLn(''); document_parser.AddTemplate(CUSTOM_TEMPLATE); WriteLn(Format('Parsing "%s"', [INPUT_DOCUMENT])); WriteLn(''); // parse invoice data in JSON format json := document_parser.ParseDocument_4(INPUT_DOCUMENT, OutputFormat_JSON, false); // display parsed data in console WriteLn('Parsing results in JSON format:'); WriteLn(''); WriteLn(json); document_parser.Dispose(); // required for console applications, initializes ActiveX support CoUninitialize(); end.
SampleTemplate.yml:
templateName: My Custom Template templateVersion: 4 templatePriority: 0 detectionRules: keywords: - Your Company Name - Invoice No\. - TOTAL objects: - name: total objectType: field fieldProperties: fieldType: macros expression: TOTAL{{Spaces}}{{Number}} dataType: decimal pageIndex: 0 - name: dateIssued objectType: field fieldProperties: fieldType: macros expression: Invoice Date {{SmartDate}} dataType: date dateFormat: auto-mdy pageIndex: 0 - name: invoiceId objectType: field fieldProperties: fieldType: macros expression: Invoice No. {{Digits}} pageIndex: 0 - name: companyName objectType: field fieldProperties: fieldType: static expression: Vendor Company pageIndex: 0 - name: billTo objectType: field fieldProperties: fieldType: rectangle rectangle: - 32.25 - 150 - 348 - 70.5 pageIndex: 0 - name: notes objectType: field fieldProperties: fieldType: rectangle rectangle: - 32.25 - 227.25 - 531 - 47.25 pageIndex: 0 - name: table1 objectType: table tableProperties: start: expression: Item\s+Quantity\s+Price\s+Total regex: true end: expression: TOTAL regex: true row: expression: ^\s*(?<description>\w+.*)(?<quantity>\d+)\s+(?<unitPrice>\d+\.\d{2})\s+(?<itemTotal>\d+\.\d{2})\s*$ regex: true