buildWidgetsCatalog function

Uint8List buildWidgetsCatalog({
  1. SfntFont? font,
  2. SfntFont? fontBold,
})

Full bilingual catalog of every public pdf_widgets surface.

Implementation

Uint8List buildWidgetsCatalog({SfntFont? font, SfntFont? fontBold}) {
  final Document doc = Document(
    title: 'Quds pdf_widgets — Full Catalog',
    author: 'Quds Office',
    font: font,
    fontBold: fontBold,
    theme: const ThemeData(
      defaultTextStyle: TextStyle(fontSize: 9.5, color: '37474F'),
    ),
  );

  doc.addPage(
    MultiPage(
      pageFormat: PdfPageFormat.a4,
      margin: const EdgeInsets.fromLTRB(40, 36, 40, 40),
      header: (Context context) => const Padding(
        padding: EdgeInsets.only(bottom: 6),
        child: Column(
          children: <Widget>[
            Row(
              children: <Widget>[
                Text(
                  'QUDS OFFICE  ·  pdf_widgets',
                  style: TextStyle(fontSize: 8, color: '5C6BC0'),
                ),
                Spacer(),
                Text(
                  'FULL WIDGET CATALOG',
                  style: TextStyle(
                    fontSize: 8,
                    fontWeight: FontWeight.bold,
                    color: '1A237E',
                    letterSpacing: 0.6,
                  ),
                ),
              ],
            ),
            Divider(height: 8, thickness: 0.6, color: 'C5CAE9'),
          ],
        ),
      ),
      footer: (Context context) => Padding(
        padding: const EdgeInsets.only(top: 6),
        child: Row(
          children: <Widget>[
            const Expanded(
              child: Text(
                'pdf_widgets catalog  ·  كتالوج الودجات',
                style: TextStyle(fontSize: 7.5, color: '90A4AE'),
              ),
            ),
            PageNumber(
              builder: (int page, int count) => Text(
                // LTR override: bare "2 / 20" BiDi-flips beside Arabic leading.
                '\u202D$page / $count\u202C',
                softWrap: false,
                style: const TextStyle(fontSize: 8, color: '546E7A'),
              ),
            ),
          ],
        ),
      ),
      build: (Context context) => <Widget>[
        ..._coverAndToc(),
        ..._chDocument(),
        ..._chTypography(),
        ..._chLayout(),
        ..._chBox(),
        ..._chTable(),
        ..._chMedia(),
        ..._chChromeContent(),
        ..._chFormsAdvanced(),
        ..._chCompose(),
      ],
    ),
  );

  return doc.save();
}