[英]Create a PDF file from Firebase Firestore collection in flutter
我在 Firestore 中有各种 collections,我想创建一个按钮,将从特定集合中获取的数据保存到 PDF 文件中。 我不知道如何使用PDF package 将通过查询获取的数据保存到 PDF 文件中。
我有一个演示代码,它从 Firestore 集合中获取数据并将其显示在列表视图中,现在我想在那里创建一个按钮,允许用户将获取的数据下载到 PDF 并将该 PDF 保存到设备。
下面是显示从该集合中获取的数据的列表视图的代码
Container buildUserPosts() {
Future<List<NewsPost>> getPosts() async {
List<NewsPost> posts = [];
var snap = await FirebaseFirestore.instance
.collection('News')
.orderBy("timestamp")
.get();
for (var doc in snap.docs) {
posts.add(NewsPost.fromDocument(doc));
}
return posts.reversed.toList();
}
return Container(
child: FutureBuilder<List<NewsPost>>(
future: getPosts(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Container(
alignment: FractionalOffset.center,
padding: const EdgeInsets.only(top: 10.0),
child: CircularProgressIndicator());
} else {
return Column(
children: snapshot.data!.map((NewsPost imagePost) {
return imagePost;
}).toList());
}
},
));
现在我希望将此数据保存在 PDF 中,但不知道如何实现。 请建议如何完成?
您需要使用包小部件来构建生成 pdf
import 'dart:io';
import 'package:pdf/widgets.dart' as pw;
Future<void> generatePdf(MyData? mydata) async {
final pdf = pw.Document();
// build your pdf view here
pdf.addPage(
pw.Page(
build: (pw.Context context) => pw.Center(
child: pw.Text(mydata?.title ??''),
),
),
);
//save pdf
final file = File('example.pdf');
await file.writeAsBytes(await pdf.save());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.