【发布时间】:2015-06-21 13:51:53
【问题描述】:
我正在开发一个使用 PDFKit 生成 PDF 的 Windows 8 Javascript 应用程序。
通常您会使用管道创建一个 blobstream,然后创建一个发送到浏览器的 URL。这仅适用于网站从服务器运行的情况,因为它是本地应用程序,所以情况并非如此。但是我确实可以访问文件系统,并且我想将生成的 PDF 保存到文件中。
为此,我受到了这个问题的启发: How to pipe a stream using pdfkit with node js
我使用 Browserify 尝试了上述两种解决方案,将打印机代码替换为保存到文件的代码:
Windows.Storage.ApplicationData.current.localFolder.createFileAsync("test.pdf",
Windows.Storage.CreationCollisionOption.replaceExisting).then(function (file) {
//write as text
Windows.Storage.FileIO.writeTextAsync(file, data).then(function () {});
//or write as buffer
var buffUTF8 = Windows.Security.Cryptography.CryptographicBuffer.convertStringToBinary(data, 0);
Windows.Storage.FileIO.writeBufferAsync(file, buffUTF8).then(function () {});
});
如您所见,我都尝试使用写入文本或写入缓冲区,都给了我完全相同的文件。
PDF 文件已创建,但当我打开它时显示一个空白页。如果我在文本编辑器中打开 pdf 并将其与有效的 PDF 进行比较,我可以看出文件的流部分具有不同类型的字符。
此外,Visual Studio 输出窗口向我发送关于 URI 编码无效的 Javascript 运行时错误消息。
所以这显然是一个编码问题,我不确定下一步该怎么做。有关如何将 PDFkit 文档保存到文件的任何提示?
【问题讨论】:
标签: javascript file windows-8 character-encoding pdfkit