From 0d45df1ee4ad6062cec2ca101039abc7ac1c804a Mon Sep 17 00:00:00 2001 From: Valery Buchinsky Date: Mon, 13 Nov 2023 10:57:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A9=20Should=20I=20parse=20dictionarie?= =?UTF-8?q?s=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/placeholder-plain/src/getValue.js | 12 ++++++++++++ packages/placeholder-plain/src/readRefTable.js | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/placeholder-plain/src/getValue.js b/packages/placeholder-plain/src/getValue.js index 801b7b9d..2c637281 100644 --- a/packages/placeholder-plain/src/getValue.js +++ b/packages/placeholder-plain/src/getValue.js @@ -2,6 +2,18 @@ * @param {Buffer} trailer * @param {string} key * @returns {string} + * + * FIXME: + * 0 00 000 Null (NUL) + * 9 09 011 Tab (HT) + * 10 0A 012 Line feed (LF) + * 12 0C 014 Form feed (FF) + * 13 0D 015 Carriage return (CR) + * 32 20 040 Space (SP) + * + * The delimiter characters (, ), <, >, [, ], {, }, /, and % + * + * ^ All are terminators */ export const getValue = (trailer, key) => { let index = trailer.indexOf(key); diff --git a/packages/placeholder-plain/src/readRefTable.js b/packages/placeholder-plain/src/readRefTable.js index 6fcea5a7..577a21bc 100644 --- a/packages/placeholder-plain/src/readRefTable.js +++ b/packages/placeholder-plain/src/readRefTable.js @@ -1,6 +1,7 @@ import {SignPdfError} from '@signpdf/utils'; import xrefToRefMap from './xrefToRefMap'; import {findObjectAt} from './findObject'; +// import {getValue} from './getValue'; /** * @param {Buffer} pdf @@ -93,6 +94,17 @@ const readXrefTableAt = (pdfSlice, position) => { const readXrefStreamAt = (pdfSlice, position) => { const {dictionary: _d, stream: _s} = findObjectAt(pdfSlice, position); + // const parsed = { + // size: getValue(_d, '/Size'), + // root: getValue(_d, '/Root'), + // info: getValue(_d, '/Info'), + // filter: getValue(_d, '/Filter'), + // length: getValue(_d, '/Length'), + // }; + + // console.log(_d.toString(), parsed); + // console.log(zlib.deflateSync(stream)); + throw new SignPdfError( 'Cross-Reference Streams not yet implemented.', SignPdfError.TYPE_PARSE,