image - pdf Flutter,如何将资产中的图像(JPG/PNG等)附加到pdf中
问题描述
使用 pdf 库中的图像小部件时遇到问题
当前版本:pdf:^3.3.0
代码:
final imageA = PdfImage.file(
pdf.document,
bytes: File('lib/Images/rocket14.jpg').readAsBytesSync(),
);
child: pw.Image(pw.ImageImage(pdfimageA)),
错误:
Unhandled Exception: type 'PdfImage' is not a subtype of type 'Image'
我完全不知道如何将 Pdfimage 解析为图像,最初我有
更新:
使用
Future<MemoryImage> convtoImage(String name) async => pw.MemoryImage((await rootBundle.load('assets/img/$name.jpg')).buffer.asUint8List(),);
导致捕获 22,其中
error: A value of type 'MemoryImage' can't be returned from the function 'convtoImage' because it has a return type of 'Future<MemoryImage>'. (return_of_invalid_type at [scanrecopdfmaker] lib\main.dart:490)
但如果我将其设为 memimage 的返回类型,它会提示我将其转回未来。
也试过这个,但它从不更新值,所以它保持为空
Future<Uint8List> convtoImage(String name) async {
///1
var a = await rootBundle.load('lib/Images/$name.jpg');
Uint8List data = (await rootBundle.load('lib/Images/rocket14.jpg'))
.buffer
.asUint8List();
// print("data IS $data");
// var b = pw.MemoryImage(a.buffer.asUint8List());
return data;
}
var done;
var tempa = convtoImage('rocket14').whenComplete(() {
print("done");
}).then((value) => done=value);
print("AA IS $tempa");
print("BIS $done");
while(done == null){
print(done);
}
print("Finito");
解决方案
使用 rootBundle 从资产中加载图像
pw.MemoryImage(
(await rootBundle.load('assets/img/your_image.jpg')).buffer.asUint8List(),
);
推荐阅读
- google-sheets - 谷歌表格,基于公式的条件格式
- iis-8 - 使用 SSL 的 IIS ARR 负载平衡配置
- vue.js - Vuejs v-on:单击不适用于选项标签
- angular-material - Angular 5 自动完成:接受多个值
- mongodb - MongoDB mongoose $elemMatch 用于多个结果
- f# - 删除字符串列表中除第一次出现的字符之外的所有字符
- git - Syncing my Github repo to MS Visual Studio Team Services
- android - 我必须在 android studio 中将列表视图转换为 pdf
- php - Woocommerce:结帐后将 JSON 发送到外部服务器
- sql - 如何优化连接两个大表的 HQL 查询