我想展示一个PDF文件,但是我从服务器上收到的PDF文件是以Base64字符串格式传输的。有没有办法可以在不将其保存为文件的情况下直接将Base64字符串展示在PDF阅读器或WebView中。
请看这个链接:https://dev59.com/qLPma4cB1Zd3GeqPliKe#55599926
(下面的代码是从上面链接中复制来的)
以下代码可以将base64编码的pdf数据转换为字节数组。
import 'packages:dart/convert.dart';
List<int> pdfDataBytes = base64.decode(pdfBase64)
.map((number) => int.parse(number));
代码应该大致如下:
import 'package:pdf/pdf.dart';
import 'package:image/image.dart';
...
Image img = decodeImage(pdfDataBytes);
PdfImage image = PdfImage(
pdf,
image: img.data.buffer.asUint8List(),
width: img.width,
height: img.height);
// Display it somehow
...
起初我和你一样也在尝试同样的事情。但是我没有找到合适的解决方案将base64字符串转换为pdf文件。
我认为你可以获取BufferArray,然后将其转换为pdf文件。 我已经回答了如何将blob数据解析为pdf的问题: 如何将ByteBuffer转换为pdf