draw method
Draws an element on the Graphics. Graphics context where the element should be printed. location has contains X co-ordinate of the element, Y co-ordinate of the element.
//Create a new pdf document
PdfDocument document = PdfDocument();
//Add the pages to the document
for (int i = 1; i <= 5; i++) {
document.pages.add().graphics.drawString(
'page$i', PdfStandardFont(PdfFontFamily.timesRoman, 11),
bounds: Rect.fromLTWH(250, 0, 615, 100));
}
//Create the header with specific bounds
PdfPageTemplateElement header = PdfPageTemplateElement(
Rect.fromLTWH(0, 0, document.pages[0].getClientSize().width, 300));
//Create the date and time field
PdfDateTimeField dateAndTimeField = PdfDateTimeField(
font: PdfStandardFont(PdfFontFamily.timesRoman, 19),
brush: PdfSolidBrush(PdfColor(0, 0, 0)));
dateAndTimeField.date = DateTime(2020, 2, 10, 13, 13, 13, 13, 13);
dateAndTimeField.dateFormatString = 'E, MM.dd.yyyy';
//Create the composite field with date field
PdfCompositeField compositefields = PdfCompositeField(
font: PdfStandardFont(PdfFontFamily.timesRoman, 19),
brush: PdfSolidBrush(PdfColor(0, 0, 0)),
text: '{0} Header',
fields: <PdfAutomaticField>[dateAndTimeField]);
//Add composite field in header
compositefields.draw(header.graphics,
Offset(0, 50 - PdfStandardFont(PdfFontFamily.timesRoman, 11).height));
//Add the header at top of the document
document.template.top = header;
//Save the document.
List<int> bytes = await document.save();
//Dispose the document.
document.dispose();
Implementation
void draw(PdfGraphics graphics, [Offset? location]) {
location ??= Offset.zero;
PdfGraphicsHelper.getHelper(graphics)
.autoFields!
.add(PdfAutomaticFieldInfo(this, PdfPoint.fromOffset(location)));
}