2017-12-04 16 views
0

PDF를 생성하고 경로를 가져 오는 함수를 호출하고 있습니다. 콜백에서 PDF를 다운로드하여 사용자에게 보냅니다.Node.js에서 pdfkit PDF 파일 생성시 적절한 콜백을 수행하는 방법은 무엇입니까?

create_pdf(data, function(path) { 
res.download(path) 
}) 

을 그리고 이것은 기능입니다 : 호출

const PDFDocument = require('pdfkit') 
function create_pdf(input, callback) { 
    let doc = new PDFDocument({ margin: 0 }) 
    doc.fillColor('Black').fontSize(22) 
     .font('Scandia-bold') 
     .text(input, 167, 265, { 
      align: 'center', 
      width: 280 
     }) 
    doc.on('end', function() { callback(path) }) 
    doc.end() 
} 

그러나 사용자가 끝나는 서버에서 생성 된 PDF가 아주 좋은 상태에서 다운로드가 항상 손상/파손 PDF입니다. PDF 생성이 완료되기 전에 내 함수가 경로를 보내는 문제입니까? (콜백 코드가 잘못됨)? 또는 무엇을?

+0

죄송합니다' let path = __dirname + '/../generated_pdf/'+ input.id + '.pdf '' –

답변

0

내가 'writeStream'을 확인했다 함수 내에서 : 신경 쓰지 그것이 완료되면 다음 콜백을 절대로 :

경로가 선을 (중요하지 않지만)이 함수 내에서
writeStream = fs.createWriteStream(path) 
doc.pipe(writeStream) 

writeStream.on('finish', function() { 
    callback(path) 
})