node-webkit - AngularJS: создание PDF и Push для пользователя
Я пытаюсь создать PDF-файл и отправить его пользователю в отдельном приложении node-webkit. Генерация PDF в порядке, но я не могу отправить ее пользователю. Я следовал указаниям найти здесь: http://pdfkit.org/demo/browser.html.
Вот мой контроллер:
paiApp.controller('pdfCtrl', function($scope) {
var PDFDocument = require('pdfkit');
var blobStream = require('blob-stream');
var doc = new PDFDocument;
stream = doc.pipe(blobStream());
doc.fontSize(15).text('Hello World');
doc.end();
stream.on('finish', function() {
iframe = document.getElementById('myIframe');
iframe.src = this.toBlobUrl(); //Error here
// blob = stream.toBlob('application/pdf') //Error ...
});
// Writting PDF is working
// ###################################
// var PDFDocument = require('pdfkit');
// var fs = require('fs');
// doc = new PDFDocument;
// doc.pipe(fs.createWriteStream('output.pdf'));
// doc.fontSize(15);
// doc.text('Generate PDF coool!');
// doc.end();
// #####################################
});
Здесь моя ошибка:
Object [object Object] has no method 'toBlobUrl'
Любая идея?
1 ответ
Я тоже боролся с этим, но недавно заставил его работать для моего приложения. Я просто собираюсь отобразить динамически сгенерированный PDF в браузере в окне - поэтому я использовал <object>
- мой код контроллера клиента такой:
$http({method: 'GET', url: 'SERVERCONTROLLER', responseType: 'arraybuffer'})
.success(function(response){
var file = new Blob([response], {type: 'application/pdf'}));
var fileURL = URL.createObjectURL(file);
$scope.mycontent = $sce.trustAsResourceUrl(fileURL);
});
Убедитесь, что вы не забыли ввести $sce
к вашему контроллеру, и вы должны быть в порядке.