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

标签 node.js pdf flutter base64

我知道有一个名为 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/

相关文章:

flutter - 如何在 flutter 中创建自定义 tabBar

python - 用于手机的远程蓝牙摄像头触发器

node.js - Redis SCAN 没有给出 NodeJS 和 node_redis 中的所有匹配项

ios - 如何在设备ipad/iphone中查看下载的文件

python - 在 FPDF (Python) 中错误地显示阿拉伯语单词

flutter - 如何创建使所需元素居中的 ListView

dart - 将 float 操作按钮锚定到卡片

javascript - 无法识别 'if' 中定义的 undefined variable

node.js - 如何使用 sequelize 播种 uuidv4

javascript - 使用 JavaScript 在客户端将 base64 字符串保存为 PDF