【问题标题】:How to attached assets images (jpg/png) in Flutter pdf: ^3.6.0 package如何在 Flutter pdf 中附加资产图像 (jpg/png):^3.6.0 包
【发布时间】:2021-11-24 15:29:16
【问题描述】:

您好,我正在使用 Flutter 桌面项目。如何在 Flutter pdf 页面中附加 jpg/png 格式的资产图片。

static Future<File> generate(Invoice invoice) async {
    final pdf = Document();

    pdf.addPage(MultiPage(
      build: (context) => [
        buildHeader(invoice),
        dashLine(),
        SizedBox(height: 20.0),
        buildTitle(invoice),
        buildInvoice(invoice),
        dashLine(),
        priceDetails(invoice.total),
      ],
    ));

    return PdfApi.saveDocument(
        name:
            '${DateTime.now().day}_${DateTime.now().month}_${DateTime.now().year}.pdf',
        pdf: pdf);
  }

【问题讨论】:

标签: flutter flutter-desktop


【解决方案1】:

根据document 获取本地资产:

final image = pw.MemoryImage(
  File('test.webp').readAsBytesSync(),
);

pdf.addPage(pw.Page(build: (pw.Context context) {
  return pw.Center(
    child: pw.Image(image),
  ); // Center
})); // Page

对于在线图片:

 Future<Uint8List> _generatePdf(PdfPageFormat format) async {
    final pdf = pw.Document();

    final img = await networkImage(
        'https://upload.wikimedia.org/wikipedia/commons/5/57/Cumulus_Clouds_over_Yellow_Prairie2.jpg');

    pdf.addPage(
      pw.Page(
        pageFormat: format,
        build: (context) {
          return pw.Center(
            child: pw.ClipRRect(
              horizontalRadius: 10,
              verticalRadius: 10,
              child: pw.Image(img),
            ),
          );
        },
      ),
    );

    return pdf.save();
  }

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2018-12-05
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 2021-11-23
    • 2023-03-10
    • 2021-01-17
    • 2019-02-28
    相关资源
    最近更新 更多