[英]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.