flutter_pdf_invoice_widgets library

Classes

BaseTemplate
Shared base for all built-in templates.
CalculatedInvoiceAdjustment
A resolved document-level adjustment and its rounded amount.
ClassicInvoice
Classic formal business invoice template
CompanyInfo
Information about the company issuing the document.
CreativeInvoice
Colorful / Creative invoice template
CreditNote
Credit note / Refund template
CurrencyFormatter
Formats currency with either explicit separators or ICU locale rules.
CustomerInfo
Information about the customer receiving the document.
DateFormatter
Locale-aware date formatter used by all built-in templates.
DeliveryNote
Delivery note / Packing slip template
FooterStyle
Styling for the invoice footer section.
HeaderStyle
Styling for the invoice header section.
InvoiceAdjustment
A document-level discount, charge, shipping cost, or withholding.
InvoiceCalculator
Centralized financial calculator used by models, components, and templates.
InvoiceColumn
Configuration for a single column in the invoice table.
InvoiceDocument
Serializable, validated source data for a complete business document.
InvoiceInfo
Metadata that identifies and describes an invoice-like document.
InvoiceItem
Represents one priced line on a document.
InvoiceLineTotals
Rounded totals for one invoice line.
InvoiceLocalization
Locale, direction, date pattern, and built-in label bundle for a document.
InvoicePdfMetadata
Optional PDF information-dictionary metadata.
InvoiceRenderContext
Context supplied to custom section builders.
InvoiceStyle
Master visual, formatting, locale, and font configuration.
InvoiceTemplateRegistry
Creates built-in templates from InvoiceDocument and hosts optional custom template factories without exposing package internals.
InvoiceTotals
Authoritative rounded totals for a complete document.
InvoiceValidationIssue
A single validation problem with a stable machine-readable code.
MinimalistInvoice
Minimalist, typography-driven invoice template
ModernInvoice
Modern clean invoice template
MonetaryPolicy
Defines when and how monetary values are quantized.
PaymentInfo
Bank, payment-method, terms, and QR information.
PdfFontLoader
Utility class for loading fonts from raw bytes for PDF generation.
ProfessionalInvoice
Professional / Corporate invoice template
ProformaInvoice
Proforma invoice template
QuoteEstimate
Quote or Estimate template with acceptance signature block
ReceiptTemplate
Narrow receipt/POS style template
ShippingInfo
Shipping and delivery information.
TableStyle
Styling and columns for the item table.

Enums

InvoiceAdjustmentCalculation
Whether InvoiceAdjustment.value is a fixed amount or a percentage.
InvoiceAdjustmentType
How an adjustment changes the document total.
InvoiceDocumentType
The supported business-document types and their built-in templates.
InvoiceStatus
Common invoice states. InvoiceInfo.status remains available for custom business-specific values.
MonetaryRoundingMode
Supported rounding modes for authoritative invoice calculations.

Functions

buildPdfAddressBlock({required CompanyInfo company, required CustomerInfo customer, required InvoiceStyle style}) → Widget
Builds the address block section, typically containing the billing addresses of both the issuer ("Bill From") and the customer ("Bill To").
buildPdfDivider({required InvoiceStyle style, double? thickness, PdfColor? color, double? topPadding, double? bottomPadding}) → Widget
Builds a simple horizontal line/divider for PDF layouts.
buildPdfFooter({required InvoiceStyle style, InvoiceInfo? info, required Context context}) → Widget
MultiPage footer honoring text, date, background, padding, and pagination.
buildPdfHeader({required CompanyInfo company, required InvoiceInfo info, required InvoiceStyle style}) → Widget
Builds a responsive header and honors every HeaderStyle option.
buildPdfInfoBlock({required InvoiceInfo info, required InvoiceStyle style, bool transparent = false}) → Widget
Displays invoice metadata (number, dates, terms, custom fields) in a clean key-value layout.
buildPdfItemTable({required List<InvoiceItem> items, required InvoiceStyle style, InvoiceInfo? info, bool taxInclusive = false, MonetaryPolicy? monetaryPolicy}) → Widget
Builds a multi-page item table with stable labels and per-column alignment.
buildPdfPaymentBlock({required PaymentInfo payment, required InvoiceStyle style}) → Widget
Displays payment information, including bank details, terms, and optionally a QR code.
buildPdfSignatureBlock({required InvoiceStyle style}) → Widget
Builds a signature block with an optional image, a line, and a label.
buildPdfTotalsBlock({required List<InvoiceItem> items, required InvoiceStyle style, InvoiceInfo? info, List<InvoiceAdjustment> adjustments = const [], double amountPaid = 0, bool taxInclusive = false, MonetaryPolicy? monetaryPolicy, InvoiceTotals? totals}) → Widget
Builds the financial summary from the centralized calculation engine.
buildPdfWatermark({required InvoiceStyle style}) → Widget
Creates a full-page watermark overlay using text or an image.
formatDate(DateTime date, [String format = 'MMM dd, yyyy', String? locale]) String
Formats a date with an optional ICU locale.
formatInvoiceItemValue({required InvoiceItem item, required InvoiceColumn column, required int rowIndex, required CurrencyFormatter formatter, bool taxInclusive = false, MonetaryPolicy policy = MonetaryPolicy.standard, String numberFormatter(double)?, String percentageFormatter(double)?}) String
Resolves one item value for a table column.

Typedefs

CustomInvoiceTemplateFactory = BaseTemplate Function(InvoiceDocument document, InvoiceStyle? style, InvoicePdfMetadata? metadata)
InvoiceSectionBuilder = List<Widget> Function(InvoiceRenderContext context)
Builds custom widgets before or after a template's item table.
PdfGenerationCancellation = bool Function()
PdfGenerationProgress = void Function(double progress)

Exceptions / Errors

InvoiceValidationException
Thrown when a document fails explicit validation.
PdfGenerationCancelledException