Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GroupDocsGists/93fedba9f28ae7faa2c7dac4955f1bdc to your computer and use it in GitHub Desktop.
Save GroupDocsGists/93fedba9f28ae7faa2c7dac4955f1bdc to your computer and use it in GitHub Desktop.
// For complete examples and data files, please go to https://github.com/groupdocs-parser/GroupDocs.Parser-for-Java
// Create a collection of template fields
TemplateField[] templateFields = new TemplateField[]
{
new TemplateField("FromCompany", TemplateFieldPosition.createFixed(new Rectangle(35, 135, 100, 10))),
new TemplateField("FromAddress", TemplateFieldPosition.createFixed(new Rectangle(35, 150, 100, 35))),
new TemplateField("FromEmail", TemplateFieldPosition.createFixed(new Rectangle(35, 190, 150, 2))),
new TemplateField("ToCompany", TemplateFieldPosition.createFixed(new Rectangle(35, 250, 100, 2))),
new TemplateField("ToAddress", TemplateFieldPosition.createFixed(new Rectangle(35, 260, 100, 15))),
new TemplateField("ToEmail", TemplateFieldPosition.createFixed(new Rectangle(35, 290, 150, 2))),
new TemplateField("InvoiceNumber", TemplateFieldPosition.createRegex("Invoice Number")),
new TemplateField("InvoiceNumberValue", TemplateFieldPosition.createRelated(
"InvoiceNumber",
TemplateFieldRelatedPositionType.Right,
new Size(200, 15))),
new TemplateField("InvoiceOrder", TemplateFieldPosition.createRegex("Order Number")),
new TemplateField("InvoiceOrderValue", TemplateFieldPosition.createRelated(
"InvoiceOrder",
TemplateFieldRelatedPositionType.Right,
new Size(200, 15))),
new TemplateField("InvoiceDate", TemplateFieldPosition.createRegex("Invoice Date")),
new TemplateField("InvoiceDateValue", TemplateFieldPosition.createRelated(
"InvoiceDate",
TemplateFieldRelatedPositionType.Right,
new Size(200, 15))),
new TemplateField("DueDate", TemplateFieldPosition.createRegex("Due Date")),
new TemplateField("DueDateValue", TemplateFieldPosition.createRelated(
"DueDate",
TemplateFieldRelatedPositionType.Right,
new Size(200, 15))),
new TemplateField("TotalDue", TemplateFieldPosition.createRegex("Total Due")),
new TemplateField("TotalDueValue", TemplateFieldPosition.createRelated(
"TotalDue",
TemplateFieldRelatedPositionType.Right,
new Size(200, 15))),
};
// Create detector parameters for "Details" table
TableAreaDetectorParameters detailsTableParameters = new TableAreaDetectorParameters();
detailsTableParameters.setRectangle(new Rectangle(35, 320, 530, 55));
// Create detector parameters for "Summary" table
TableAreaDetectorParameters summaryTableParameters = new TableAreaDetectorParameters();
summaryTableParameters.setRectangle(new Rectangle(330, 385, 220, 65));
// Create a collection of template tables
TemplateTable[] templateTables = new TemplateTable[]
{
new TemplateTable("details", detailsTableParameters),
new TemplateTable("summary", summaryTableParameters)
};
// Create a document template
DocumentTemplate template = new DocumentTemplate(Arrays.asList(templateFields), Arrays.asList(templateTables));
// Extract data from PDF
DocumentData data = DocumentParser.DEFAULT.parseByTemplate(Common.mapSourceFilePath(FILE_PATH), template);
// Get all the tables
List<DocumentDataTable> dataTables = data.getDataTables();
// Iterate over tables
for (DocumentDataTable table : dataTables) {
// Print a table name
System.out.println(table.getTableName());
// Iterate over rows
for (int r = 0; r < table.getRowCount(); r++) {
// Iterate over columns
for (int c = 0; c < table.getColumnCount(); c++) {
// Print a value of the cell
System.out.print(table.get_Item(r, c));
System.out.print(" ");
}
System.out.println();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment