我用这个示例代码成功地制作了一个PDF。它是从我的欲望小工具制作PDF。但是如果小工具太长(可滚动),那么PDF中的图像会变小,我必须放大它才能看到内容... smaple1如果我做fit: pw.BoxFit.fill
,PDF中的小工具会得到squeeze。我可以使PDF适合A4大小的页面,刚刚适合屏幕或可滚动PDF吗?
我的功能,使pdf
final GlobalKey<State<StatefulWidget>> printKey = GlobalKey();
final doc = pw.Document();
void _printScreen() async { //=============> Pdf function
final image = await WidgetWraper.fromKey(
key: printKey,
pixelRatio: 2.0,
);
final directory = await getTemporaryDirectory();
final file = File('${directory.path}/my_goal.pdf');
final pdf = pw.Document();
pdf.addPage(pw.Page(
pageFormat: PdfPageFormat.a4,
build: (pw.Context context) {
return pw.FullPage(
ignoreMargins: true,
child: pw.Image(image, fit: pw.BoxFit.contain),
);
},
));
await file.writeAsBytes(await pdf.save());
await Share.shareFiles(
[file.path],
text: 'Check out my goal details',
subject: 'My goal details',
);
}
按下按钮时调用制作和共享pdf的函数
IconButton(
onPressed: () async {
_printScreen();
},
icon: const Icon(Icons.share),
),
然后 Package 我想要PDF格式的小部件
return SingleChildScrollView(
physics: const BouncingScrollPhysics(),
child: RepaintBoundary( ||======>>>>>>>>>>>>>>>||
key: printKey,
child: Padding(
padding: const EdgeInsets.all(12.0),
child:
Column(crossAxisAlignment: CrossAxisAlignment.start,
children: [
1条答案
按热度按时间5lwkijsr1#
您可以使用
MultiPage