GroupDocs.Parser for .NET 23.12 Release Notes

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
PARSERNET-2210Implement the ability to serialize/deserialize templatesFeature

Public API and Backward Incompatible Changes

Implement the ability to serialize/deserialize templates

Description

This feature allows to save Template object to XML file and restore Template object from XML file.

Public API changes

Point public class was updated with changes as follows:

  • Added Parse(string) static method
  • Added TryParse(string, out Point) static method

Size public class was updated with changes as follows:

  • Added Parse(string) static method
  • Added TryParse(string, out Size) static method
  • Added IsEmpty property

TemplateLinkedPositionEdges public class was updated with changes as follows:

  • Added Parse(string) static method
  • Added TryParse(string, out TemplateLinkedPositionEdges) static method
  • Added ToString() method

Template public class was updated with changes as follows:

  • Added Load(Stream) static method
  • Added Load(string) static method
  • Added Save(Stream) method
  • Added Save(string) method

Usage

The following example shows how to save the template to the file:

// Create detector parameters for "Details" table
TemplateTableParameters detailsTableParameters = new TemplateTableParameters(new Rectangle(new Point(35, 320), new Size(530, 55)), null);

// Create detector parameters for "Summary" table
TemplateTableParameters summaryTableParameters = new TemplateTableParameters(new Rectangle(new Point(330, 385), new Size(220, 65)), null);

// Create a collection of template items
TemplateItem[] templateItems = new TemplateItem[]
{
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 135), new Size(100, 10))), "FromCompany",null, false),
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 150), new Size(100, 35))), "FromAddress",null, false),
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 190), new Size(150, 2))), "FromEmail",null, false),
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 250), new Size(100, 2))), "ToCompany",null, false),
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 260), new Size(100, 15))), "ToAddress",null, false),
    new TemplateField(new TemplateFixedPosition(new Rectangle(new Point(35, 290), new Size(150, 2))), "ToEmail",null, false),

    new TemplateField(new TemplateRegexPosition("Invoice Number"), "InvoiceNumber",null, false),
    new TemplateField(new TemplateLinkedPosition(
        "InvoiceNumber",
        new Size(200, 15),
        new TemplateLinkedPositionEdges(false, false, true, false), false, false),
        "InvoiceNumberValue",null, false),

    new TemplateField(new TemplateRegexPosition("Order Number"), "InvoiceOrder",null, false),
    new TemplateField(new TemplateLinkedPosition(
        "InvoiceOrder",
        new Size(200, 15),
        new TemplateLinkedPositionEdges(false, false, true, false), false, false),
        "InvoiceOrderValue",null, false),

    new TemplateField(new TemplateRegexPosition("Invoice Date"), "InvoiceDate",null, false),
    new TemplateField(new TemplateLinkedPosition(
        "InvoiceDate",
        new Size(200, 15),
        new TemplateLinkedPositionEdges(false, false, true, false), false, false),
        "InvoiceDateValue",null, false),

    new TemplateField(new TemplateRegexPosition("Due Date"), "DueDate",null, false),
    new TemplateField(new TemplateLinkedPosition(
        "DueDate",
        new Size(200, 15),
        new TemplateLinkedPositionEdges(false, false, true, false)),
        "DueDateValue",null, false),

    new TemplateField(new TemplateRegexPosition("Total Due"), "TotalDue",null, false),
    new TemplateField(new TemplateLinkedPosition(
        "TotalDue",
        new Size(200, 15),
        new TemplateLinkedPositionEdges(false, false, true, false)),
        "TotalDueValue",null, false),

    new TemplateTable(detailsTableParameters, "details", null, false),
    new TemplateTable(summaryTableParameters, "summary", null, false)
};

// Create a document template
Template template = new Template(templateItems);
// Save the document template to the file
template.Save("template.xml");

The following example shows how to load the template from the file:

// Load a document template from the file
Template template = Template.Load("template.xml");