2016-11-14 7 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); 
    }); 
}; 

클라이언트 측 나는 다음과 같은 코드가 있습니다.

답변

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 파일은 오류없이 열리지 만 이제는 [[object object]' –