I'm trying to merge pdf files and add a number page using the muhammara js(fork of hummusjs) library.
I got an error "Segmentation fault: 11"
Sometimes, I get "context not created, page index is either wrong, or page is null"
node version v16.15.0 muhammara version 3.5.0
const muhammara = require('muhammara');
const streamBuffers = require('stream-buffers');
/**
* Merges an array of PDF buffers into one single PDF buffer with page numbers.
*
* @param {Object[]} documents - an array of objects with { pdf, displayName }
*
* @returns {Buffer} merged PDF buffer with page numbers
*/
const mergeAndAddPageNumbers = async (documents) => {
// Create a writable stream buffer for the output PDF.
const outStreamBuffer = new streamBuffers.WritableStreamBuffer({
initialSize: 100 * 1024,
incrementAmount: 10 * 1024,
});
const pdfWriter = new muhammara.PDFWriter(new muhammara.PDFStreamForResponse(outStreamBuffer));
// Track the current page number.
let currentPageNumber = 1;
for (const document of documents) {
const { pdf, displayName } = document;
// Create a PDF reader for the current document.
const pdfReader = muhammara.createReader(new muhammara.PDFRStreamForBuffer(pdf));
for (let pageIndex = 0; pageIndex < pdfReader.getPagesCount(); pageIndex++) {
const pageModifier = new muhammara.PDFPageModifier(pdfWriter, pageIndex);
pageModifier.startContext().getContext().writeText(`Page ${currentPageNumber}`, 460, 38, {
font: 'Helvatica',
size: 14,
colorspace: 'gray',
color: [1, 0, 0], // Red color
});
pageModifier.endContext().writePage().end();
currentPageNumber++;
}
}
pdfWriter.end();
return outStreamBuffer.getContents();
};
module.exports = { mergeAndAddPageNumbers };
I get the error after this command.
pageModifier.startContext().getContext().writeText(`Page ${currentPageNumber}`, 460, 38, {
font: 'Helvatica',
size: 14,
colorspace: 'gray',
color: [1, 0, 0], // Red color
});