2016-11-14 11 views
0

私は次のことを実行しようとしています、私はGET REST要求がreceiptを実行するエンドポイントに当たっています。私は以下のエラーは表示されませんが、返されたBLOBをチェックすると、追加したテキストが表示されません。PDFKitはストリームにファイルを書き込むことができません

var file = new Blob([response], {type: 'application/pdf'}); 
var fileURL = URL.createObjectURL(file); 
$window.open(fileURL); 

しかしFailed to load PDF documentのページに戻ります:

var PDFDocument = require('pdfkit'); 

// User Receipt 
exports.receipt = function(req, res) { 
    var guid = req.params.guid; 
    console.log(guid); 

    var doc = new PDFDocument(); 
    var stream = doc.pipe(res); 

    doc.moveTo(300, 75) 
     .lineTo(373, 301) 
     .lineTo(181, 161) 
     .lineTo(419, 161) 
     .lineTo(227, 301) 
     .fill('red', 'even-odd'); 

    var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in...'; 

    doc.y = 320; 
    doc.fillColor('black') 
    doc.text(loremIpsum, { 
     paragraphGap: 10, 
     indent: 20, 
     align: 'justify', 
     columns: 2 
    }); 

    doc.end(); 
    res.setHeader('Content-Type', 'application/pdf'); 

    stream.on('finish', function() { 
     stream.pipe(res); 
    }); 
}; 

クライアント側Iは、次のコードを持っています。

答えて

0

パイプを張る前にヘッダーを設定する必要があります。また、一度だけresへの配管を行う必要があります。

var PDFDocument = require('pdfkit'); 

// User Receipt 
exports.receipt = function(req, res) { 
    var guid = req.params.guid; 
    console.log(guid); 

    var doc = new PDFDocument(); 

    doc.moveTo(300, 75) 
     .lineTo(373, 301) 
     .lineTo(181, 161) 
     .lineTo(419, 161) 
     .lineTo(227, 301) 
     .fill('red', 'even-odd'); 

    var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in...'; 

    doc.y = 320; 
    doc.fillColor('black') 
    doc.text(loremIpsum, { 
     paragraphGap: 10, 
     indent: 20, 
     align: 'justify', 
     columns: 2 
    }); 
    doc.end(); 

    res.setHeader('Content-Type', 'application/pdf'); 
    return doc.pipe(res); 
}; 
+0

私のPDFファイルは正常に開き、エラーは表示されませんが、現在は[オブジェクトオブジェクト]と表示されています –

関連する問題