Flutter Syncfusion PDF 和图像失败

问题描述 投票:0回答:1

当我在页面上的任何位置合并和成像时,我根本无法获得创建的文档来工作。它在通过 IDE 运行时可以工作,但在构建包后就不行了。我将其作为 Windows 程序运行(也不适用于 iOS 或 Android,仅在模拟时运行)。

我使用了 Syncfusion 文档中的直接代码示例,只是更新了图像位置和 LTWH:

final Uint8List imageData = File('assets/images/seallogol.png').readAsBytesSync();
//Load the image using PdfBitmap.
final PdfBitmap image = PdfBitmap(imageData);
//Draw the image to the PDF page.
document.pages
    .add()
    .graphics
    .drawImage(image, const Rect.fromLTWH(225, 0, 60, 60));

一旦您点击创建 PDF 文件,上面的代码就不起作用了。它只是什么也没做。 在模拟器中运行时,它确实运行没有任何问题。这不是主意,因为它创建了一个全新的页面,只是将徽标粘贴在该新页面上。这似乎不是问题,所以我使用了以下代码:

    final Uint8List imageData = File('assets/images/seallogo.png').readAsBytesSync();
    final PdfBitmap image = PdfBitmap(imageData);
    page.graphics.drawImage(image, const Rect.fromLTWH(225, 0, 60, 60));

在模拟器中,它完全按照我的要求做了。尽管如此,在它构建并运行后不会做任何事情。什么都没有。我知道我的其他代码很好。我所做的就是删除 3 行代码,构建它,它运行完美,所以我知道写入图像的某些东西是它崩溃的地方。 我正在使用当前版本:syncfusion_flutter_pdf 24.1.43

我似乎无法弄清楚为什么。以及为什么它会在 IDE 中运行测试而没有任何问题。一旦构建完成,它就不会在同一台 PC 或任何其他 PC 上运行。 Windows 10 或 11。

我尝试重写图像代码,尝试不同的图像类型,但仍然得到相同的结果。我正在使用 Android Studio。

flutter image pdf syncfusion
1个回答
0
投票

我们怀疑发布版本中的问题可能是由于使用“File”从资产加载图像数据造成的,因为“dart:io”的某些功能可能在桌面和移动平台(Android和 iOS)。

使用以下替代方法从资产中检索图像数据,

  • 在 dart 文件中添加包“import 'package:flutter/services.dart';”。

  • 使用以下代码检索图像数据,

     //Load the image using PdfBitmap.
     final PdfBitmap image = PdfBitmap(await _readImageData(seallogol.png));
     //Draw the image to the PDF page.
     page.graphics.drawImage(image, const Rect.fromLTWH(225, 0, 60, 60));
    

_readImageData上写入以下代码。

Future<List<int>> _readImageData(String name) async {
final ByteData data = await rootBundle.load('assets/images/ $name');
return data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
}

要了解有关使用 Syncfusion Flutter PDF 将图像添加到 PDF 文档的更多信息,请参阅以下 UG 链接,

如何在Syncfusion Flutter PDF Library中将图像转换为PDF? |同步融合

Flutter PDF 库中的图像 |同步融合

© www.soinside.com 2019 - 2024. All rights reserved.