|
//Create PDF document.
final PdfDocument document = PdfDocument();
//Create a header template and draw image/text.
final PdfPageTemplateElement headerElement =
PdfPageTemplateElement(const Rect.fromLTWH(0, 0, 515, 50));
headerElement.graphics.drawString(
'This is page header', PdfStandardFont(PdfFontFamily.helvetica, 10),
bounds: const Rect.fromLTWH(0, 0, 515, 50),
format: PdfStringFormat(lineAlignment: PdfVerticalAlignment.middle));
headerElement.graphics.setTransparency(0.6);
headerElement.graphics.drawString(
'INVOICE', PdfStandardFont(PdfFontFamily.helvetica, 15),
bounds: const Rect.fromLTWH(0, 0, 515, 50),
format: PdfStringFormat(
alignment: PdfTextAlignment.right,
lineAlignment: PdfVerticalAlignment.middle));
headerElement.graphics
.drawLine(PdfPens.gray, const Offset(0, 49), const Offset(515, 49));
document.template.top = headerElement;
//Create a footer template and draw a text.
final PdfPageTemplateElement footerElement =
PdfPageTemplateElement(const Rect.fromLTWH(0, 0, 515, 50));
footerElement.graphics.drawString(
'This is page footer',
PdfStandardFont(PdfFontFamily.helvetica, 10),
bounds: const Rect.fromLTWH(0, 35, 515, 50),
);
footerElement.graphics.setTransparency(0.6);
PdfCompositeField(text: 'Page {0} of {1}', fields: <PdfAutomaticField>[
PdfPageNumberField(brush: PdfBrushes.black),
PdfPageCountField(brush: PdfBrushes.black)]).draw(footerElement.graphics, const Offset(450, 35));
document.template.bottom = footerElement;
<---- Invoice code here ---->
//Save PDF document.
final List<int> bytes = document.save(); |