gpt4 book ai didi

node.js - 如何在 Flutter 中解码 base64 PDF 字符串?

转载 作者:行者123 更新时间:2023-12-04 14:47:11 25 4
gpt4 key购买 nike

我知道有一个名为 dart:convert 的包可以让我解码 base64 图像。但显然,它不适用于 pdf 文件。如何在 Flutter 中解码 base64 PDF 文件?

我想将它存储在 Firebase 存储中(我知道怎么做),但我需要 File 变量来做到这一点。

我有一个用 Node js 编写的 Web 服务,我有一个 POST 路由。在那里,我创建了一个 pdf 文件并将其编码为 base 64。响应是一个 base64 字符串,请查看代码。

router.post('/pdf', (req, res, next) => {
//res.send('PDF');

const fname = req.body.fname;
const lname = req.body.lname;

var documentDefinition = {
content: [ write your pdf with pdfMake.org ],
styles: { write your style };

const pdfDoc = pdfMake.createPdf(documentDefinition);
pdfDoc.getBase64((data) => {

res.send({ "base64": data });

});
});

如您所见,它将 pdf 作为 base64 字符串返回。

现在,在 Flutter 中,我写了这个:

http.post("https://mypostaddreess.com",body: json.encode({"data1":"data"}))
.then((response) {
print("Response status: ${response.statusCode}");
print("Response body: ${response.body}");

var data = json.decode(response.body);
var pdf = base64.decode(data["base64"]);

});

}

如您所见,我在变量“pdf”中有 PDF。但我不知道如何解码以下载 pdf 或在我的 Flutter 应用中显示。

最佳答案

@SwiftingDuster

补充一点,可能除了解码之外,还需要创建一个pdf文件并打开。

createPdf() async {
var bytes = base64Decode(widget.base64String.replaceAll('\n', ''));
final output = await getTemporaryDirectory();
final file = File("${output.path}/example.pdf");
await file.writeAsBytes(bytes.buffer.asUint8List());

print("${output.path}/example.pdf");
await OpenFile.open("${output.path}/example.pdf");
setState(() {});
}

需要的库: 1. open_file 2. path_provider 3.pdf

关于node.js - 如何在 Flutter 中解码 base64 PDF 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55598481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com