@adnsistemas/pdf-lib 2.6.2 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/pdf-lib.js CHANGED
@@ -12566,11 +12566,14 @@
12566
12566
  class PDFStreamWriter extends PDFWriter {
12567
12567
  constructor(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream) {
12568
12568
  super(context, objectsPerTick, snapshot);
12569
+ // the process of saving uses references numbers, and creates a new indirect object, that has to be deleted after saving
12570
+ this._refToDeleteAfterSave = 0;
12569
12571
  this.encodeStreams = encodeStreams;
12570
12572
  this.objectsPerStream = objectsPerStream;
12571
12573
  }
12572
12574
  computeBufferSize(incremental) {
12573
12575
  return __awaiter(this, void 0, void 0, function* () {
12576
+ this._refToDeleteAfterSave = 0;
12574
12577
  const header = PDFHeader.forVersion(1, 7);
12575
12578
  let size = this.snapshot.pdfSize;
12576
12579
  if (!incremental) {
@@ -12614,6 +12617,7 @@
12614
12617
  chunk = [];
12615
12618
  compressedObjects.push(chunk);
12616
12619
  objectStreamRef = this.context.nextRef();
12620
+ this._refToDeleteAfterSave += 1;
12617
12621
  objectStreamRefs.push(objectStreamRef);
12618
12622
  }
12619
12623
  xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);
@@ -12634,6 +12638,7 @@
12634
12638
  yield waitForTick();
12635
12639
  }
12636
12640
  const xrefStreamRef = this.context.nextRef();
12641
+ this._refToDeleteAfterSave += 1;
12637
12642
  xrefStream.dict.set(PDFName.of('Size'), PDFNumber.of(this.context.largestObjectNumber + 1));
12638
12643
  if (this.snapshot.prevStartXRef) {
12639
12644
  xrefStream.dict.set(PDFName.of('Prev'), PDFNumber.of(this.snapshot.prevStartXRef));
@@ -12648,6 +12653,19 @@
12648
12653
  return { size, header, indirectObjects: uncompressedObjects, trailer };
12649
12654
  });
12650
12655
  }
12656
+ serializeToBuffer() {
12657
+ const _super = Object.create(null, {
12658
+ serializeToBuffer: { get: () => super.serializeToBuffer }
12659
+ });
12660
+ return __awaiter(this, void 0, void 0, function* () {
12661
+ const buffer = yield _super.serializeToBuffer.call(this);
12662
+ // delete xref stream created for saving
12663
+ this.context.delete(PDFRef.of(this.context.largestObjectNumber - 1));
12664
+ // fix largestObjectNumbering
12665
+ this.context.largestObjectNumber -= this._refToDeleteAfterSave;
12666
+ return buffer;
12667
+ });
12668
+ }
12651
12669
  }
12652
12670
  PDFStreamWriter.forContext = (context, objectsPerTick, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, defaultDocumentSnapshot, encodeStreams, objectsPerStream);
12653
12671
  PDFStreamWriter.forContextWithSnapshot = (context, objectsPerTick, snapshot, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream);