Flutter Firestore 集合转 PDF
Flutter Firestore Collection to PDF
我正在制作一个关于克里特岛的旅游应用程序,人们可以在其中查找最重要的景点。他们还可以将文档添加到自己的行程中,这是 firestore 上的一个集合“Selected”。
我希望人们能够从他们选择的项目中生成 pdf,以节省他们的Android/Iphone。
我有一个单独的 class 用于生成 pdf..
但是如何将 snapshot.data() 传递给另一个 class?
onTap: () async {
getSelectedItems();
final pdfFile = await PdfApi.generateCenteredText(data);
PdfApi.openFile(pdfFile);
},
getSelectedItems(){
mySelectedTrips.get().then((querySnapshot) {
querySnapshot.docs.forEach((snapshot) {
setState(() {
data = snapshot.data();
uid = snapshot['uid'];
description = snapshot['description'];
image = snapshot['image'];
});
});
});
}
您好,这是一个简短的示例,说明如何创建一页 pdf。
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
class PdfCreator {
void createPdf(Snapshot snapshot) async {
final Document pdf = Document();
final page = Page(
pageFormat: PdfPageFormat.a4,
build: (Context context) {
return Column(
children: [
Text(snapshot.snapshot['description']),
Text(snapshot.snapshot['uid'].toString()),
Image(MemoryImage(snapshot['image'])),
],
);
},
);
pdf.addPage(page);
// Save file
final output = await getTemporaryDirectory();
var path = "${output.path}/test.pdf";
final file = File(path);
await file.writeAsBytes(await pdf.save());
}
}
您可以增强它并在 foreach 循环中为每个元素创建一个页面,然后将其转换为 pdf 等等。
提示:如果你想在一个文件中使用 flutter widgets 和 pdf widgets 你可以导入 pdf 作为 p 例如:
import 'package:pdf/widgets.dart' as p;
...
final flutterWidget = Text('abc');
final pdfWidget = p.Text('def');
我正在制作一个关于克里特岛的旅游应用程序,人们可以在其中查找最重要的景点。他们还可以将文档添加到自己的行程中,这是 firestore 上的一个集合“Selected”。
我希望人们能够从他们选择的项目中生成 pdf,以节省他们的Android/Iphone。
我有一个单独的 class 用于生成 pdf.. 但是如何将 snapshot.data() 传递给另一个 class?
onTap: () async {
getSelectedItems();
final pdfFile = await PdfApi.generateCenteredText(data);
PdfApi.openFile(pdfFile);
},
getSelectedItems(){
mySelectedTrips.get().then((querySnapshot) {
querySnapshot.docs.forEach((snapshot) {
setState(() {
data = snapshot.data();
uid = snapshot['uid'];
description = snapshot['description'];
image = snapshot['image'];
});
});
});
}
您好,这是一个简短的示例,说明如何创建一页 pdf。
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
class PdfCreator {
void createPdf(Snapshot snapshot) async {
final Document pdf = Document();
final page = Page(
pageFormat: PdfPageFormat.a4,
build: (Context context) {
return Column(
children: [
Text(snapshot.snapshot['description']),
Text(snapshot.snapshot['uid'].toString()),
Image(MemoryImage(snapshot['image'])),
],
);
},
);
pdf.addPage(page);
// Save file
final output = await getTemporaryDirectory();
var path = "${output.path}/test.pdf";
final file = File(path);
await file.writeAsBytes(await pdf.save());
}
}
您可以增强它并在 foreach 循环中为每个元素创建一个页面,然后将其转换为 pdf 等等。
提示:如果你想在一个文件中使用 flutter widgets 和 pdf widgets 你可以导入 pdf 作为 p 例如:
import 'package:pdf/widgets.dart' as p;
...
final flutterWidget = Text('abc');
final pdfWidget = p.Text('def');