Я работаю над приложением Windows 8 Javascript, которое создает PDF-файл с использованием PDFKit.PDFkit js как сохранить документ в файл (приложение Win 8)
Обычно вы делаете 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 рассылает мне сообщения об ошибках во время выполнения Javascript о URI с неверной кодировкой.
Так что это, очевидно, проблема с кодировкой, и я не уверен, что делать дальше. Любые советы о том, как сохранить документ PDFkit в файл?
Windows.Security.Cryptography.CryptographicBuffer.decodeFromBase64String (base64) помог мне, как IE Mobile atob() альтернатива. – tvelop