From 61a7074886421fcc7bf0510f5cdf7237c640df0c Mon Sep 17 00:00:00 2001 From: Lowell Stewart Date: Fri, 5 Apr 2024 15:40:56 -0600 Subject: [PATCH 1/4] Remove unnecessary whitespace from FDF output --- index.js | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/index.js b/index.js index da0f359..fbbb96b 100644 --- a/index.js +++ b/index.js @@ -200,15 +200,14 @@ class PdfTk { */ static generateFdfFromJSON(data) { - const header = PdfTk.stringToBuffer(` - %FDF-1.2\n - ${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) + String.fromCharCode(211)}\n - 1 0 obj\n - <<\n - /FDF\n - <<\n - /Fields [\n - `); + const header = PdfTk.stringToBuffer(`%FDF-1.2 +${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) + String.fromCharCode(211)} +1 0 obj +<< +/FDF +<< +/Fields [ +`); let body = PdfTk.stringToBuffer(''); @@ -225,7 +224,7 @@ class PdfTk { ]); body = Buffer.concat([ body, - PdfTk.stringToBuffer(')\n/V('), + PdfTk.stringToBuffer(')\n/V ('), ]); body = Buffer.concat([ body, @@ -238,18 +237,18 @@ class PdfTk { } } - const footer = PdfTk.stringToBuffer(` - ]\n - >>\n - >>\n - endobj \n - trailer\n - \n - <<\n - /Root 1 0 R\n - >>\n - %%EOF\n - `); + const footer = PdfTk.stringToBuffer(`] +>> +>> +endobj +trailer + +<< +/Root 1 0 R +>> +%%EOF +`); + return Buffer.concat([ header, From 3724daba35f8b4d93487db13971bcc543e5bdf6f Mon Sep 17 00:00:00 2001 From: Lowell Stewart Date: Sat, 6 Apr 2024 12:41:27 -0600 Subject: [PATCH 2/4] Fix bug in error handler... Unfortunately I did not capture the specific form that caused this failure, but it definitely happened. --- index.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index fbbb96b..03a181e 100644 --- a/index.js +++ b/index.js @@ -340,9 +340,19 @@ trailer const result = []; child.stderr.on('data', data => { - if (!this._ignoreWarnings && data.toString().toLowerCase().includes('error')) { - this._cleanUpTempFiles(); - return reject(data.toString('utf8')); + if (!this._ignoreWarnings) { + let str = data.toString(); + if (str.toLowerCase().includes('error')) { + this._cleanUpTempFiles(); + try { + str = data.toString('utf8'); + } catch (e) { + // toString('utf8') can throw when toString() (above) did not... + // if it does, ignore this secondary error and + // reject using the string we already have. + } + return reject(str); + } } }); From 359aa0293a1c9f3a583ed3d7218d4658f7fc760e Mon Sep 17 00:00:00 2001 From: Lowell Stewart Date: Sat, 6 Apr 2024 15:27:51 -0600 Subject: [PATCH 3/4] add support for hierarchical field naming (with dots) (aka partially & fully qualified field names) --- index.js | 89 ++++++++++++++++++++------------ pretest.js | 3 ++ test/dumpDataFieldsUtf8.spec.js | 13 +++++ test/files/form2.fdf | 35 +++++++++++++ test/files/form2.pdf | Bin 0 -> 96966 bytes test/fillForm.spec.js | 23 +++++++++ test/generateFdf.spec.js | 13 +++++ 7 files changed, 144 insertions(+), 32 deletions(-) create mode 100644 test/files/form2.fdf create mode 100644 test/files/form2.pdf diff --git a/index.js b/index.js index 03a181e..293418e 100644 --- a/index.js +++ b/index.js @@ -190,6 +190,54 @@ class PdfTk { .replace(/\)/g, '\\)'); } + /** + * Converts a string to a buffer and appends it to an array of buffers. + * @static + * @public + * @param {Array} buffers - an array of buffers to which the result will be concatenated + * @param {String} str - String to buffer. + * @param {String} encoding - encodding + * @returns {Number} - size of the buffer + */ + static stringToBuffers(buffers, str, encoding = 'utf8') { + const buffer = PdfTk.stringToBuffer(str, encoding); + buffers.push(buffer); + return buffer.length; + } + + /** + * Returns a buffer from a JSON object representing a form field. + * @static + * @public + * @param {String} name - string representing a (partial) field name in the fdf. + * @param {Object} value - JSON object representing the value to be added to the fdf. + * @returns {Buffer} Fdf data as a buffer. + */ + static fdfFieldToBuffer(name, value) { + const buffers = []; + let len = 0; + if (value !== null && value !== undefined) { + len += PdfTk.stringToBuffers(buffers, '<<\n/T ('); + len += PdfTk.stringToBuffers(buffers, PdfTk.sanitizeForFdf(name.toString()), 'binary'); + len += PdfTk.stringToBuffers(buffers, ')\n'); + if (typeof value === 'object') { + len += PdfTk.stringToBuffers(buffers, '/Kids [\n'); + for (const prop in value) { + const buf = PdfTk.fdfFieldToBuffer(prop, value[prop]); + len += buf.length; + buffers.push(buf); + } + len += PdfTk.stringToBuffers(buffers, ']\n'); + } else { + len += PdfTk.stringToBuffers(buffers, '/V ('); + len += PdfTk.stringToBuffers(buffers, PdfTk.sanitizeForFdf(value.toString()), 'binary'); + len += PdfTk.stringToBuffers(buffers, ')\n'); + } + len += PdfTk.stringToBuffers(buffers, '>>\n'); + } + return Buffer.concat(buffers, len); + } + /** * Creates fdf file from JSON input. * Converts input values to binary buffer, which seems to allow PdfTk to render utf-8 characters. @@ -199,8 +247,9 @@ class PdfTk { * @returns {Buffer} Fdf data as a buffer. */ static generateFdfFromJSON(data) { - - const header = PdfTk.stringToBuffer(`%FDF-1.2 + const buffers = []; + let len = 0; + len += PdfTk.stringToBuffers(buffers, `%FDF-1.2 ${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) + String.fromCharCode(211)} 1 0 obj << @@ -209,35 +258,16 @@ ${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) /Fields [ `); - let body = PdfTk.stringToBuffer(''); - for (const prop in data) { /* istanbul ignore else */ - if (data.hasOwnProperty(prop) && data[prop] !== null && data[prop] !== undefined) { - body = Buffer.concat([ - body, - PdfTk.stringToBuffer('<<\n/T ('), - ]); - body = Buffer.concat([ - body, - PdfTk.stringToBuffer(PdfTk.sanitizeForFdf(prop.toString()), 'binary'), - ]); - body = Buffer.concat([ - body, - PdfTk.stringToBuffer(')\n/V ('), - ]); - body = Buffer.concat([ - body, - PdfTk.stringToBuffer(PdfTk.sanitizeForFdf(data[prop].toString()), 'binary'), - ]); - body = Buffer.concat([ - body, - PdfTk.stringToBuffer(')\n>>\n'), - ]); + if (data.hasOwnProperty(prop)) { + const buf = PdfTk.fdfFieldToBuffer(prop, data[prop]); + len += buf.length; + buffers.push(buf); } } - const footer = PdfTk.stringToBuffer(`] + len += PdfTk.stringToBuffers(buffers, `] >> >> endobj @@ -249,12 +279,7 @@ trailer %%EOF `); - - return Buffer.concat([ - header, - body, - footer, - ]); + return Buffer.concat(buffers, len); } diff --git a/pretest.js b/pretest.js index 3ec1d65..5b1c730 100644 --- a/pretest.js +++ b/pretest.js @@ -21,11 +21,13 @@ function sequentialPromise(operations) { const commands = [ 'test/files/form.pdf fill_form test/files/form.fdf output test/files/filledform.temp.pdf', + 'test/files/form2.pdf fill_form test/files/form2.fdf output test/files/filledform2.temp.pdf', 'test/files/form.pdf fill_form test/files/formwithnumber.fdf output test/files/filledformwithnumber.temp.pdf', 'test/files/form.pdf fill_form test/files/form.fdf output test/files/filledformflat.temp.pdf flatten', 'test/files/form.pdf fill_form test/files/form.blank.fdf output test/files/filledformempty.temp.pdf flatten', 'test/files/form.pdf fill_form test/files/form.escape.fdf output test/files/filledformescape.temp.pdf flatten', 'test/files/form.pdf generate_fdf output test/files/form.temp.fdf', + 'test/files/form2.pdf generate_fdf output test/files/form2.temp.fdf', 'test/files/form.pdf stamp test/files/logo.pdf output test/files/stamp.temp.pdf', 'test/files/form.pdf multistamp test/files/logo.pdf output test/files/multistamp.temp.pdf', 'A=test/files/document1.pdf B=test/files/document2.pdf cat A B output test/files/documentcatwithdate.temp.pdf keep_final_id', 'test/files/documentcatwithdate.temp.pdf update_info_utf8 test/files/documentcat.info output test/files/documentcat.temp.pdf', @@ -33,6 +35,7 @@ const commands = [ 'test/files/form.pdf multibackground test/files/logo.pdf output test/files/multibackground.temp.pdf', 'test/files/form.pdf dump_data_fields output test/files/form.fields.temp.info', 'test/files/form.pdf dump_data_fields_utf8 output test/files/form.fields.utf8.temp.info', + 'test/files/form2.pdf dump_data_fields_utf8 output test/files/form2.fields.utf8.temp.info', ].map(i => pdftk.bind(this, i)); diff --git a/test/dumpDataFieldsUtf8.spec.js b/test/dumpDataFieldsUtf8.spec.js index 9edc191..ca79a6b 100644 --- a/test/dumpDataFieldsUtf8.spec.js +++ b/test/dumpDataFieldsUtf8.spec.js @@ -22,6 +22,19 @@ describe('dumpDataFieldsUtf8', function () { .catch(err => expect(err).to.be.null); }); + it('should output hierarchical data fields to file with file path input', function () { + + const testFile = fs.readFileSync(path.join(__dirname, './files/form2.fields.utf8.temp.info')); + const input = path.join(__dirname, './files/form2.pdf'); + + return pdftk + .input(input) + .dumpDataFieldsUtf8() + .output() + .then(buffer => expect(buffer.equals(testFile)).to.be.true) + .catch(err => expect(err).to.be.null); + }); + it('should output data fields to file with buffer input', function () { const testFile = fs.readFileSync(path.join(__dirname, './files/form.fields.utf8.temp.info')); diff --git a/test/files/form2.fdf b/test/files/form2.fdf new file mode 100644 index 0000000..d472ddf --- /dev/null +++ b/test/files/form2.fdf @@ -0,0 +1,35 @@ +%FDF-1.2 +âãÏÓ +1 0 obj +<< +/FDF +<< +/Fields [ +<< +/T (topmostSubform[0]) +/Kids [ +<< +/T (Page1[0]) +/Kids [ +<< +/T (f1_1[0]) +/V (John Doe) +>> +<< +/T (f1_2[0]) +/V (123-12-3123) +>> +] +>> +] +>> +] +>> +>> +endobj +trailer + +<< +/Root 1 0 R +>> +%%EOF diff --git a/test/files/form2.pdf b/test/files/form2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..04f6c79235708695238d5226f2d4315b3513d048 GIT binary patch literal 96966 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%0D=^QQH}ty6kQcnb}6i8&Tr;f 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 xa expect(err).to.be.null); }); + it('should fill a form featuring partially qualified field names (hierarchical/grouped fields)', function () { + + const testFile = fs.readFileSync(path.join(__dirname, './files/filledform2.temp.pdf')); + const input = path.join(__dirname, './files/form2.pdf'); + + return pdftk + .input(input) + .fillForm({ + 'topmostSubform[0]': { + 'Page1[0]': { + 'f1_1[0]': 'John Doe', + 'f1_2[0]': '123-12-3123', + }, + }, + }) + .output() + .then(buffer => expect(buffer.equals(testFile)).to.be.true) + .catch(err => { + if (err) console.error(err); + return expect(err).to.be.null; + }); + }); + it('should fill a form without flattening it with a number input', function () { const testFile = fs.readFileSync(path.join(__dirname, './files/filledformwithnumber.temp.pdf')); diff --git a/test/generateFdf.spec.js b/test/generateFdf.spec.js index a50ec52..6167921 100644 --- a/test/generateFdf.spec.js +++ b/test/generateFdf.spec.js @@ -22,6 +22,19 @@ describe('generateFdf', function () { .catch(err => expect(err).to.be.null); }); + it('should generate a hierarchical fdf from a pdf containing partially qualified field names', function () { + + const testFile = fs.readFileSync(path.join(__dirname, './files/form2.temp.fdf')); + const input = path.join(__dirname, './files/form2.pdf'); + + return pdftk + .input(input) + .generateFdf() + .output() + .then(buffer => expect(buffer.equals(testFile)).to.be.true) + .catch(err => expect(err).to.be.null); + }); + it('should generate an fdf file from a pdf with a buffer input', function () { const testFile = fs.readFileSync(path.join(__dirname, './files/form.temp.fdf')); From bc7214d015b354f77e8c72308307aaa7cd60f698 Mon Sep 17 00:00:00 2001 From: Lowell Stewart Date: Sat, 6 Apr 2024 15:47:51 -0600 Subject: [PATCH 4/4] comment should be prefixed with % in PDF/FDF --- index.js | 6 +++--- test/files/form2.fdf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 293418e..15126e2 100644 --- a/index.js +++ b/index.js @@ -250,13 +250,13 @@ class PdfTk { const buffers = []; let len = 0; len += PdfTk.stringToBuffers(buffers, `%FDF-1.2 -${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) + String.fromCharCode(211)} +%${String.fromCharCode(226) + String.fromCharCode(227) + String.fromCharCode(207) + String.fromCharCode(211)} 1 0 obj << /FDF << /Fields [ -`); +`, 'binary'); for (const prop in data) { /* istanbul ignore else */ @@ -277,7 +277,7 @@ trailer /Root 1 0 R >> %%EOF -`); +`, 'binary'); return Buffer.concat(buffers, len); diff --git a/test/files/form2.fdf b/test/files/form2.fdf index d472ddf..96d3489 100644 --- a/test/files/form2.fdf +++ b/test/files/form2.fdf @@ -1,5 +1,5 @@ %FDF-1.2 -âãÏÓ +%âãÏÓ 1 0 obj << /FDF