dart_pdf 图像生成不正确以及如何在使用图像生成多页时使用异步功能
dart_pdf Image is not generated properly and how to use async function while generating multipage with image
图片未正确加载损坏的图片
PdfImage image = new PdfImage.file(
doc.document,
bytes: (File(field.imagename).readAsBytesSync()),
);
如何将 await getContentlist 函数用作异步。下面的函数调用
doc.addPage(
pw.MultiPage(
maxPages: 100,
pageTheme: _buildTheme(
pageFormat,
),
header: _buildheader2,
footer: _buildfooter2,
build: (pw.Context context) => getContentlist(context),
),
);
这是函数
List<pw.Widget> getContentlist(context) {
List<pw.Widget> contentlist = [];
contentlist.add(pw.SizedBox(height: 20));
contentlist.add(_contentheader2(context));
return contentlist;
}
我认为你需要问 2 个不同的问题
对于第二部分,如果 build
与 Flutter 小部件 build()
方法无关,您可以修改您的代码片段以使其异步
build: (pw.Context context) async => getContentlist(context),
但如果它与小部件构建有关 - 您需要使用 FutureBuilder 小部件等待未来状态更改并重建小部件
FutureBuilder<String>(
future: _yourFuture,
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
List<Widget> children;
if (snapshot.hasData) {
// return widget that shows data
} else if (snapshot.hasError) {
// return widget that shows erro
}
// by default show progress indication
return Center(
child: CircularProgressIndicator()
);
},
),
PS随时在评论中联系我
图片未正确加载损坏的图片
PdfImage image = new PdfImage.file(
doc.document,
bytes: (File(field.imagename).readAsBytesSync()),
);
如何将 await getContentlist 函数用作异步。下面的函数调用
doc.addPage(
pw.MultiPage(
maxPages: 100,
pageTheme: _buildTheme(
pageFormat,
),
header: _buildheader2,
footer: _buildfooter2,
build: (pw.Context context) => getContentlist(context),
),
);
这是函数
List<pw.Widget> getContentlist(context) {
List<pw.Widget> contentlist = [];
contentlist.add(pw.SizedBox(height: 20));
contentlist.add(_contentheader2(context));
return contentlist;
}
我认为你需要问 2 个不同的问题
对于第二部分,如果 build
与 Flutter 小部件 build()
方法无关,您可以修改您的代码片段以使其异步
build: (pw.Context context) async => getContentlist(context),
但如果它与小部件构建有关 - 您需要使用 FutureBuilder 小部件等待未来状态更改并重建小部件
FutureBuilder<String>(
future: _yourFuture,
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
List<Widget> children;
if (snapshot.hasData) {
// return widget that shows data
} else if (snapshot.hasError) {
// return widget that shows erro
}
// by default show progress indication
return Center(
child: CircularProgressIndicator()
);
},
),
PS随时在评论中联系我