pdf_templates library

Ready report templates on top of pdf_widgets.

Import this library on its own. Do not mix it with Flutter's Text or TextDirection in the same prefix. In a Flutter file:

import 'package:quds_office_engine/pdf_templates.dart' as tpl;

final bytes = tpl.InvoiceTemplate(
  direction: tpl.TextDirection.rtl,
  labels: const tpl.TradeLabels(document: 'فاتورة', from: 'من', to: 'إلى'),
  seller: const tpl.TemplateParty(name: 'الورشة'),
  buyer: const tpl.TemplateParty(name: 'الحيّ'),
  totals: const tpl.MoneyTotals(subtotal: '100', total: '100'),
).save();

Every heading is a field on a labels class. TemplateCatalog is the index. TemplateTheme.copyWith changes color without copying the layout. TextDirection flips parties, tables, totals, and the footer.

To grow a template, reuse templateBand, templateTable, and TemplateDocument.save.

Classes

ActionItem
An action with an owner and a due string.
AdmissionLetterTemplate
Admission letter.
AfterActionTemplate
After-action review.
AgedPayablesTemplate
Aged payables.
AgedReceivablesTemplate
Aged receivables.
AgendaItem
One agenda slot.
AgendaLabels
Agenda labels.
AgendaTemplate
Timed agenda.
AnnouncementTemplate
Announcement.
AppointmentLetterTemplate
Appointment letter.
AssetRegisterTemplate
Asset register.
AssignmentBriefTemplate
Assignment brief.
AttendanceSheetTemplate
Attendance sheet.
AuditFindingsTemplate
Audit findings.
BalanceSnapshotTemplate
Balance snapshot.
BankReconciliationTemplate
Bank reconciliation.
BeneficiaryListTemplate
Beneficiary list.
BillOfLadingTemplate
Bill of lading.
BriefingLabels
Briefing labels.
BriefingTemplate
Status briefing: summary, optional metrics, optional chart, next steps.
BriefMetric
One metric on a briefing.
BudgetActualTemplate
Budget versus actual.
CapacityReportTemplate
Capacity report.
CashFlowTemplate
Cash flow.
CertificateLabels
Certificate labels.
CertificateTemplate
Landscape certificate. Body is one paragraph the caller writes.
ChangeRequestTemplate
Change request.
ChartPoint
Class ChartPoint.
CheckGroup
A named group of checks.
CheckItem
One row in a checklist or inspection.
ChecklistLabels
Checklist labels. marks maps each CheckMark to the printed word.
ChecklistTemplate
Grouped checklist.
ClassRegisterTemplate
Class register.
CommissionNoteTemplate
Commission note.
ComparisonTemplate
Comparison.
ConsignmentNoteTemplate
Consignment note.
CreditNoteTemplate
Credit note.
DailySiteReportTemplate
Daily site report.
DebitNoteTemplate
Debit note.
Decision
A decision recorded in minutes.
DecisionNoteTemplate
Decision note.
DeliveryManifestTemplate
Delivery manifest.
DeliveryNoteTemplate
Delivery note. detail is the second quantity (shipped).
DonationReceiptTemplate
Donation receipt.
EmployeeProfileTemplate
Employee profile.
ExceptionReportTemplate
Exception report.
ExecutiveSummaryTemplate
Executive summary.
ExpenseLabels
Labels for an expense claim.
ExpenseLine
One expense row.
ExpenseTemplate
Expense claim.
ExperienceLetterTemplate
Experience letter.
FeeReceiptTemplate
Fee receipt.
FieldDistributionTemplate
Distribution sheet.
FreightQuoteTemplate
Freight quote.
GoodsIssueTemplate
Goods issue.
GoodsReceivedTemplate
Goods received.
GrantReportTemplate
Grant report.
HandoverNoteTemplate
Handover.
ImpactSheetTemplate
Impact sheet.
IncidentReportTemplate
Incident report.
InspectionLabels
Inspection labels. Counts are computed from CheckItem.mark.
InspectionTemplate
Field inspection. Pass, fail, and open counts are derived from items.
InternshipCertificateTemplate
Internship certificate.
InventoryCountTemplate
Inventory count.
InvoiceTemplate
Commercial invoice.
IssueLogTemplate
Issue log.
JournalTemplate
Journal.
KpiLabels
KPI sheet labels.
KpiMetric
One KPI. delta is an already formatted change, or empty.
KpiSheetTemplate
Metric cards plus an optional chart.
LeaderboardTemplate
Leaderboard.
LeaseSummaryTemplate
Lease summary.
LeaveRequestTemplate
Leave request.
LetterLabels
Letter labels. Body text lives on the template, not here.
LetterTemplate
Formal letter. Paragraphs are caller text in either language.
ListingLabels
Record listing labels.
ListingTemplate
A filtered table. columns is the logical order; RTL flips it.
LoadSheetTemplate
Load sheet.
LoanScheduleTemplate
Loan schedule.
MaintenanceLogTemplate
Maintenance log.
MaintenanceRequestTemplate
Maintenance request.
MeetingNoticeTemplate
Meeting notice.
MemoLabels
Memo labels.
MemoTemplate
Internal memo. Sections are heading plus body, in the caller's language.
MilestoneTrackerTemplate
Milestone tracker.
MinutesLabels
Minutes labels.
MinutesTemplate
Meeting minutes.
MoneyTotals
A heading that is already formatted. The template does not parse money.
MoveInChecklistTemplate
Move-in checklist.
NewsletterTemplate
Newsletter.
OfferLetterTemplate
Offer letter.
PackingListTemplate
Packing list.
PayLine
One payslip amount, already formatted.
PaymentVoucherTemplate
Payment voucher.
PayrollSummaryTemplate
Payroll summary.
PayslipLabels
Payslip labels.
PayslipTemplate
Payslip: earnings, deductions, net.
PdfPageFormat
Page size in typographic points.
PettyCashTemplate
Petty cash.
PickListTemplate
Pick list.
PolicyNoteTemplate
Policy note.
PressReleaseTemplate
Press release.
PriceListTemplate
Price list.
ProfitAndLossTemplate
Profit and loss.
ProformaTemplate
Proforma invoice.
ProgramBriefTemplate
Program brief.
ProgressReportTemplate
Progress report.
ProjectStatusTemplate
Project status.
PropertyListingTemplate
Property listing.
ProposalTemplate
Proposal.
PurchaseOrderTemplate
Purchase order.
QuoteTemplate
Quote or estimate. validUntil uses the extra label.
ReceiptTemplate
Receipt. method uses the extra label.
ReceiptVoucherTemplate
Receipt voucher.
RecommendationLetterTemplate
Recommendation.
ReferenceLetterTemplate
Reference letter.
RelievingLetterTemplate
Relieving letter.
RentReceiptTemplate
Rent receipt.
ReportCardTemplate
Report card.
ReturnAuthorizationTemplate
Return authorization.
RiskRegisterTemplate
Risk register.
SafetyBriefingTemplate
Safety briefing.
SalesOrderTemplate
Sales order.
ScorecardTemplate
Scorecard.
ServiceEstimateTemplate
Service estimate.
ServiceTicketTemplate
Service ticket.
SfntFont
Parsed TrueType / OpenType SFNT font.
SheetLabels
Headings for a SheetTemplate. Replace every string for another language.
SheetRow
One table row. Cells follow SheetLabels.columns.
SheetTemplate
A customizable sheet. Named suite classes wrap this with domain defaults.
ShiftRosterTemplate
Shift roster.
ShippingNoticeTemplate
Shipping notice.
SignSlot
One signature slot. Empty name leaves a line to sign on paper.
StatementLabels
Column labels for a statement.
StatementLine
One movement on a statement. Amounts are already formatted.
StatementTemplate
Account statement.
SuiteSheet
A named suite template. save writes one document in direction.
SurveyResultsTemplate
Survey results.
SyllabusTemplate
Syllabus.
TaxSummaryTemplate
Tax summary.
TemplateCatalog
The template index. Construct the class named on each TemplateRef.
TemplateDocument
Writes a multi-page document in direction.
TemplateParty
A named party: seller, buyer, employee, clinic.
TemplateRef
One entry in TemplateCatalog. className is the type to construct.
TemplateSection
Heading plus body. Used by memos and briefings.
TemplateSuite
Builds a suite template by catalog id. Labels default to English.
TemplateTheme
Colors and page size. Pass a different accent per domain or brand.
TemplateThemes
Default palettes. Override any field with TemplateTheme.copyWith.
TenantStatementTemplate
Tenant statement.
TimesheetTemplate
Timesheet.
TradeLabels
Column headings for a trade table. Replace every string for another language.
TradeLine
One trade line. Quantity, unit, and amount are already formatted.
TranscriptTemplate
Transcript.
VisitorLogTemplate
Visitor log.
VolunteerHoursTemplate
Volunteer hours.
WarehouseTransferTemplate
Warehouse transfer.
WarningNoticeTemplate
Warning notice.
WaybillTemplate
Waybill.
WelcomeNoteTemplate
Welcome note.
WorkPermitTemplate
Work permit.
WorkshopRegisterTemplate
Workshop register.

Enums

CheckMark
Check state for lists and inspections.
PageOrientation
Page rotation hint.
SheetKind
Which blocks a SheetTemplate paints.
SheetSkin
How the page is composed. Text does not pick this; the document type does.
TemplateCategory
Domain a template belongs to.
TextDirection
Reading direction.

Constants

admissionLetterTemplateLabels → const SheetLabels
afterActionTemplateLabels → const SheetLabels
agedPayablesTemplateLabels → const SheetLabels
agedReceivablesTemplateLabels → const SheetLabels
announcementTemplateLabels → const SheetLabels
appointmentLetterTemplateLabels → const SheetLabels
assetRegisterTemplateLabels → const SheetLabels
assignmentBriefTemplateLabels → const SheetLabels
attendanceSheetTemplateLabels → const SheetLabels
auditFindingsTemplateLabels → const SheetLabels
balanceSnapshotTemplateLabels → const SheetLabels
bankReconciliationTemplateLabels → const SheetLabels
beneficiaryListTemplateLabels → const SheetLabels
billOfLadingTemplateLabels → const SheetLabels
budgetActualTemplateLabels → const SheetLabels
capacityReportTemplateLabels → const SheetLabels
cashFlowTemplateLabels → const SheetLabels
changeRequestTemplateLabels → const SheetLabels
classRegisterTemplateLabels → const SheetLabels
commissionNoteTemplateLabels → const SheetLabels
comparisonTemplateLabels → const SheetLabels
consignmentNoteTemplateLabels → const SheetLabels
creditNoteTemplateLabels → const SheetLabels
dailySiteReportTemplateLabels → const SheetLabels
debitNoteTemplateLabels → const SheetLabels
decisionNoteTemplateLabels → const SheetLabels
deliveryManifestTemplateLabels → const SheetLabels
donationReceiptTemplateLabels → const SheetLabels
employeeProfileTemplateLabels → const SheetLabels
exceptionReportTemplateLabels → const SheetLabels
executiveSummaryTemplateLabels → const SheetLabels
experienceLetterTemplateLabels → const SheetLabels
feeReceiptTemplateLabels → const SheetLabels
fieldDistributionTemplateLabels → const SheetLabels
freightQuoteTemplateLabels → const SheetLabels
goodsIssueTemplateLabels → const SheetLabels
goodsReceivedTemplateLabels → const SheetLabels
grantReportTemplateLabels → const SheetLabels
handoverNoteTemplateLabels → const SheetLabels
impactSheetTemplateLabels → const SheetLabels
incidentReportTemplateLabels → const SheetLabels
internshipCertificateTemplateLabels → const SheetLabels
inventoryCountTemplateLabels → const SheetLabels
issueLogTemplateLabels → const SheetLabels
journalTemplateLabels → const SheetLabels
leaderboardTemplateLabels → const SheetLabels
leaseSummaryTemplateLabels → const SheetLabels
leaveRequestTemplateLabels → const SheetLabels
loadSheetTemplateLabels → const SheetLabels
loanScheduleTemplateLabels → const SheetLabels
maintenanceLogTemplateLabels → const SheetLabels
maintenanceRequestTemplateLabels → const SheetLabels
meetingNoticeTemplateLabels → const SheetLabels
milestoneTrackerTemplateLabels → const SheetLabels
moveInChecklistTemplateLabels → const SheetLabels
newsletterTemplateLabels → const SheetLabels
offerLetterTemplateLabels → const SheetLabels
packingListTemplateLabels → const SheetLabels
paymentVoucherTemplateLabels → const SheetLabels
payrollSummaryTemplateLabels → const SheetLabels
pettyCashTemplateLabels → const SheetLabels
pickListTemplateLabels → const SheetLabels
policyNoteTemplateLabels → const SheetLabels
pressReleaseTemplateLabels → const SheetLabels
priceListTemplateLabels → const SheetLabels
profitAndLossTemplateLabels → const SheetLabels
proformaTemplateLabels → const SheetLabels
programBriefTemplateLabels → const SheetLabels
progressReportTemplateLabels → const SheetLabels
projectStatusTemplateLabels → const SheetLabels
propertyListingTemplateLabels → const SheetLabels
proposalTemplateLabels → const SheetLabels
purchaseOrderTemplateLabels → const SheetLabels
receiptVoucherTemplateLabels → const SheetLabels
recommendationLetterTemplateLabels → const SheetLabels
referenceLetterTemplateLabels → const SheetLabels
relievingLetterTemplateLabels → const SheetLabels
rentReceiptTemplateLabels → const SheetLabels
reportCardTemplateLabels → const SheetLabels
returnAuthorizationTemplateLabels → const SheetLabels
riskRegisterTemplateLabels → const SheetLabels
safetyBriefingTemplateLabels → const SheetLabels
salesOrderTemplateLabels → const SheetLabels
scorecardTemplateLabels → const SheetLabels
serviceEstimateTemplateLabels → const SheetLabels
serviceTicketTemplateLabels → const SheetLabels
shiftRosterTemplateLabels → const SheetLabels
shippingNoticeTemplateLabels → const SheetLabels
suiteRefs → const List<TemplateRef>
Extra papers beyond the core seventeen.
surveyResultsTemplateLabels → const SheetLabels
syllabusTemplateLabels → const SheetLabels
taxSummaryTemplateLabels → const SheetLabels
tenantStatementTemplateLabels → const SheetLabels
timesheetTemplateLabels → const SheetLabels
transcriptTemplateLabels → const SheetLabels
visitorLogTemplateLabels → const SheetLabels
volunteerHoursTemplateLabels → const SheetLabels
warehouseTransferTemplateLabels → const SheetLabels
warningNoticeTemplateLabels → const SheetLabels
waybillTemplateLabels → const SheetLabels
welcomeNoteTemplateLabels → const SheetLabels
workPermitTemplateLabels → const SheetLabels
workshopRegisterTemplateLabels → const SheetLabels

Functions

joinTemplateFiles(List<Uint8List> files) → Uint8List
Concatenates already saved template files. Page size and fonts stay.
templateBand(TemplateTheme theme, {required String kicker, required String title}) → Widget
Accent band. kicker and title are caller strings, not fixed English.
templateFacts(TemplateTheme theme, List<(String, String)> items) → Widget
Label/value pairs in two columns.
templateGap([double height = 12]) → Widget
Vertical gap used between blocks.
templateNotes(TemplateTheme theme, {required String title, String? body}) → Widget
Optional notes block. Empty body returns nothing.
templateParagraphs(TemplateTheme theme, List<String> paragraphs) → List<Widget>
Body paragraphs.
templateParties(TemplateTheme theme, {required String startLabel, required TemplateParty start, required String endLabel, required TemplateParty end}) → Widget
Two parties. Order is start then end, and flips with direction.
templateSection(TemplateTheme theme, String label) → Widget
Small section heading.
templateSigns(TemplateTheme theme, List<SignSlot> slots) → Widget
Signature slots along the line. Empty names leave a rule.
templateTable(TemplateTheme theme, {required List<String> headers, required List<List<String>> rows}) → Widget
Logical column order. The table already reverses columns in RTL.
templateTotals(TemplateTheme theme, {required List<(String, String)> rows, required String totalLabel, required String total}) → Widget
Totals pinned to the end edge.