Open rezamasoomin opened 3 years ago
I get an error when I run this function just only when I use this pdf file. does have a problem my pdf? main.pdf logo.pdf qrcode.pdf
let temp = 'files/' + uniqueId + '/temp/'; let temp2 = "files/" + uniqueId; const merg = async (callback) => { let doc = await pdfjsLib.getDocument('./' + temp2 + '/main.pdf').promise; var numPages = doc.numPages; for (let i = 0; i < numPages; i++) { let pdfWriter = hummus.createWriter('./' + temp + i + '.pdf'); var page = pdfWriter.createPage(0, 0, 595, 842); try { pdfWriter.mergePDFPagesToPage(page, './' + temp2 + '/main.pdf', { type: hummus.eRangeTypeSpecific, specificRanges: [[i, i]] }); } catch (e) { console.log(e); } var contentContext = pdfWriter.startPageContentContext(page).q().cm(0.6, 0, 0, 0.6, 500, 0); pdfWriter.mergePDFPagesToPage(page, './' + temp2 + '/qrcode.pdf', { type: hummus.eRangeTypeSpecific, specificRanges: [[0, 0]] }); contentContext.Q().q().cm(0.5, 0, 0, 0.5, 0, 0); pdfWriter.mergePDFPagesToPage(page, './assets/logo.pdf', { type: hummus.eRangeTypeSpecific, specificRanges: [[0, 0]] }); pdfWriter.writePage(page).end(); if (i == numPages - 1) { fs.readdir('./' + temp, (err, files) => { var outStream = new memoryStreams.WritableStream(); fs.readFile('./' + temp + '0.pdf', function (err, StartpdfFile) { var pdfFileToMerg = new hummus.PDFRStreamForBuffer(StartpdfFile); var pdfWriter = hummus.createWriterToModify(pdfFileToMerg, new hummus.PDFStreamForResponse(outStream)); i = 0; files.sort(function (a, b) { return a.split(".")[0] - b.split(".")[0] }); let combinedfiles = {}; files.forEach(file => { fs.readFile('./' + temp + file, function (err, pdfFile) { try { combinedfiles[file] = new hummus.PDFRStreamForBuffer(pdfFile); i++; if (numPages == i) { for (let i = 1; i < Object.keys(combinedfiles).length; i++) { pdfWriter.appendPDFPagesFromPDF(combinedfiles[i + '.pdf'], { type: hummus.eRangeTypeSpecific, specificRanges: [[0, 0]] }); if (i == Object.keys(combinedfiles).length - 1) { pdfWriter.end(); var newBuffer = outStream.toBuffer(); outStream.end(); fs.writeFile('./' + temp2 + '/last.pdf', newBuffer, 'base64', function (err) { return callback(newBuffer); }) } } } } catch (e) { console.log('Error during PDF combination: ' + e.message); } }) }); }) }); } } }
I get an error when I run this function just only when I use this pdf file. does have a problem my pdf? main.pdf logo.pdf qrcode.pdf