flutter_pdf_invoice_widgets 1.0.1 copy "flutter_pdf_invoice_widgets: ^1.0.1" to clipboard
flutter_pdf_invoice_widgets: ^1.0.1 copied to clipboard

Customizable, server-compatible PDF invoices, receipts, quotes, credit notes, and delivery documents for Dart and Flutter.

example/main.dart

import 'dart:io';

import 'package:flutter_pdf_invoice_widgets/flutter_pdf_invoice_widgets.dart';
import 'package:pdf/pdf.dart';

Future<void> main() async {
  final document = InvoiceDocument(
    type: InvoiceDocumentType.modernInvoice,
    company: CompanyInfo(
      name: 'Acme Studio',
      address: 'King Fahd Road',
      city: 'Riyadh',
      country: 'Saudi Arabia',
      email: 'billing@example.com',
      taxId: 'VAT-123456789',
    ),
    customer: CustomerInfo(
      name: 'Example Customer',
      email: 'customer@example.com',
    ),
    info: InvoiceInfo(
      invoiceNumber: 'INV-2026-001',
      invoiceDate: DateTime(2026, 8, 9),
      dueDate: DateTime(2026, 9, 8),
      currency: 'SAR',
      currencySymbol: 'SAR ',
      statusValue: InvoiceStatus.unpaid,
      notes: 'Thank you for your business.',
      terms: 'Payment is due within 30 days.',
    ),
    items: [
      InvoiceItem(
        description: 'Flutter development',
        quantity: 24,
        unit: 'hours',
        unitPrice: 250,
        taxRate: 15,
        customColumns: {'project': 'Invoice application'},
      ),
    ],
    adjustments: [
      InvoiceAdjustment(
        label: 'Project discount',
        type: InvoiceAdjustmentType.discount,
        calculation: InvoiceAdjustmentCalculation.percentage,
        value: 5,
      ),
    ],
    amountPaid: 1000,
    payment: PaymentInfo(
      iban: 'SA0000000000000000000000',
      paymentMethods: ['Bank transfer', 'Card'],
      qrData: 'https://example.com/pay/INV-2026-001',
    ),
  );

  document.validateOrThrow();

  final style = InvoiceStyle.modern().copyWith(
    primaryColor: PdfColors.indigo700,
    labels: {'description': 'Service', 'project': 'Project'},
    tableStyle: TableStyle(
      columns: [
        InvoiceColumn.index(),
        InvoiceColumn.description(),
        InvoiceColumn(id: 'project', header: 'Project', flex: 2),
        InvoiceColumn.quantity(),
        InvoiceColumn.unitPrice(),
        InvoiceColumn.tax(),
        InvoiceColumn.total(),
      ],
    ),
  );

  final template = InvoiceTemplateRegistry().create(
    document,
    style: style,
    metadata: const InvoicePdfMetadata(
      subject: 'Example invoice generated by flutter_pdf_invoice_widgets',
    ),
  );

  final bytes = await template.generate(
    onProgress: (progress) =>
        stdout.writeln('Generating PDF: ${(progress * 100).round()}%'),
  );
  await File('invoice.pdf').writeAsBytes(bytes, flush: true);
  stdout.writeln('Wrote invoice.pdf');
}

/// Loads an offline TTF font for non-Latin text in Dart/server applications.
Future<InvoiceStyle> unicodeStyle(String fontPath) async {
  final bytes = await File(fontPath).readAsBytes();
  final font = PdfFontLoader.fromBytes(bytes);
  return InvoiceStyle(
    primaryFont: font,
    boldFont: font,
    fontFallback: [font],
    localization: InvoiceLocalization.arabic(),
  );
}
1
likes
150
points
33
downloads

Documentation

API reference

Publisher

verified publisheramirsaleemahmad.com

Weekly Downloads

Customizable, server-compatible PDF invoices, receipts, quotes, credit notes, and delivery documents for Dart and Flutter.

Repository (GitHub)
View/report issues

Topics

#pdf #invoice #receipt #documents #dart

License

MIT (license)

Dependencies

intl, pdf

More

Packages that depend on flutter_pdf_invoice_widgets