@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.
@@ -11,12 +11,14 @@ declare class PDFStreamWriter extends PDFWriter {
11
11
  private readonly encodeStreams;
12
12
  private readonly objectsPerStream;
13
13
  private constructor();
14
+ private _refToDeleteAfterSave;
14
15
  protected computeBufferSize(incremental: boolean): Promise<{
15
16
  size: number;
16
17
  header: PDFHeader;
17
18
  indirectObjects: [PDFRef, PDFObject][];
18
19
  trailer: PDFTrailer;
19
20
  }>;
21
+ serializeToBuffer(): Promise<Uint8Array>;
20
22
  }
21
23
  export default PDFStreamWriter;
22
24
  //# sourceMappingURL=PDFStreamWriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PDFStreamWriter.d.ts","sourceRoot":"","sources":["../../../src/core/writers/PDFStreamWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAIhD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,UAAU,MAAM,eAAe,CAAC;AAGvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAO7C,cAAM,eAAgB,SAAQ,SAAS;IACrC,MAAM,CAAC,UAAU,YACN,UAAU,kBACH,MAAM,yEAUpB;IAEJ,MAAM,CAAC,sBAAsB,YAClB,UAAU,kBACH,MAAM,YACZ,gBAAgB,yEAUxB;IAEJ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO;cAaS,iBAAiB,CAAC,WAAW,EAAE,OAAO;;;;;;CAuGvD;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"PDFStreamWriter.d.ts","sourceRoot":"","sources":["../../../src/core/writers/PDFStreamWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAIhD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,UAAU,MAAM,eAAe,CAAC;AAGvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAO7C,cAAM,eAAgB,SAAQ,SAAS;IACrC,MAAM,CAAC,UAAU,YACN,UAAU,kBACH,MAAM,yEAUpB;IAEJ,MAAM,CAAC,sBAAsB,YAClB,UAAU,kBACH,MAAM,YACZ,gBAAgB,yEAUxB;IAEJ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO;IAcP,OAAO,CAAC,qBAAqB,CAAK;cAClB,iBAAiB,CAAC,WAAW,EAAE,OAAO;;;;;;IA2GvC,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC;CAQxD;AAED,eAAe,eAAe,CAAC"}
@@ -7,6 +7,7 @@ const PDFTrailer_1 = tslib_1.__importDefault(require("../document/PDFTrailer"));
7
7
  const PDFInvalidObject_1 = tslib_1.__importDefault(require("../objects/PDFInvalidObject"));
8
8
  const PDFName_1 = tslib_1.__importDefault(require("../objects/PDFName"));
9
9
  const PDFNumber_1 = tslib_1.__importDefault(require("../objects/PDFNumber"));
10
+ const PDFRef_1 = tslib_1.__importDefault(require("../objects/PDFRef"));
10
11
  const PDFStream_1 = tslib_1.__importDefault(require("../objects/PDFStream"));
11
12
  const PDFCrossRefStream_1 = tslib_1.__importDefault(require("../structures/PDFCrossRefStream"));
12
13
  const PDFObjectStream_1 = tslib_1.__importDefault(require("../structures/PDFObjectStream"));
@@ -19,11 +20,14 @@ const PDFPageLeaf_1 = tslib_1.__importDefault(require("../structures/PDFPageLeaf
19
20
  class PDFStreamWriter extends PDFWriter_1.default {
20
21
  constructor(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream) {
21
22
  super(context, objectsPerTick, snapshot);
23
+ // the process of saving uses references numbers, and creates a new indirect object, that has to be deleted after saving
24
+ this._refToDeleteAfterSave = 0;
22
25
  this.encodeStreams = encodeStreams;
23
26
  this.objectsPerStream = objectsPerStream;
24
27
  }
25
28
  computeBufferSize(incremental) {
26
29
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
+ this._refToDeleteAfterSave = 0;
27
31
  const header = PDFHeader_1.default.forVersion(1, 7);
28
32
  let size = this.snapshot.pdfSize;
29
33
  if (!incremental) {
@@ -67,6 +71,7 @@ class PDFStreamWriter extends PDFWriter_1.default {
67
71
  chunk = [];
68
72
  compressedObjects.push(chunk);
69
73
  objectStreamRef = this.context.nextRef();
74
+ this._refToDeleteAfterSave += 1;
70
75
  objectStreamRefs.push(objectStreamRef);
71
76
  }
72
77
  xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);
@@ -87,6 +92,7 @@ class PDFStreamWriter extends PDFWriter_1.default {
87
92
  yield (0, utils_1.waitForTick)();
88
93
  }
89
94
  const xrefStreamRef = this.context.nextRef();
95
+ this._refToDeleteAfterSave += 1;
90
96
  xrefStream.dict.set(PDFName_1.default.of('Size'), PDFNumber_1.default.of(this.context.largestObjectNumber + 1));
91
97
  if (this.snapshot.prevStartXRef) {
92
98
  xrefStream.dict.set(PDFName_1.default.of('Prev'), PDFNumber_1.default.of(this.snapshot.prevStartXRef));
@@ -101,6 +107,19 @@ class PDFStreamWriter extends PDFWriter_1.default {
101
107
  return { size, header, indirectObjects: uncompressedObjects, trailer };
102
108
  });
103
109
  }
110
+ serializeToBuffer() {
111
+ const _super = Object.create(null, {
112
+ serializeToBuffer: { get: () => super.serializeToBuffer }
113
+ });
114
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
115
+ const buffer = yield _super.serializeToBuffer.call(this);
116
+ // delete xref stream created for saving
117
+ this.context.delete(PDFRef_1.default.of(this.context.largestObjectNumber - 1));
118
+ // fix largestObjectNumbering
119
+ this.context.largestObjectNumber -= this._refToDeleteAfterSave;
120
+ return buffer;
121
+ });
122
+ }
104
123
  }
105
124
  PDFStreamWriter.forContext = (context, objectsPerTick, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, snapshot_1.defaultDocumentSnapshot, encodeStreams, objectsPerStream);
106
125
  PDFStreamWriter.forContextWithSnapshot = (context, objectsPerTick, snapshot, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream);
@@ -1 +1 @@
1
- {"version":3,"file":"PDFStreamWriter.js","sourceRoot":"","sources":["../../../src/core/writers/PDFStreamWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PDFStreamWriter.js","sourceRoot":"","sources":["../../../src/core/writers/PDFStreamWriter.ts"],"names":[],"mappings":"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"}
@@ -12560,11 +12560,14 @@ PDFPageTree.fromMapWithContext = (map, context) => new PDFPageTree(map, context)
12560
12560
  class PDFStreamWriter extends PDFWriter {
12561
12561
  constructor(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream) {
12562
12562
  super(context, objectsPerTick, snapshot);
12563
+ // the process of saving uses references numbers, and creates a new indirect object, that has to be deleted after saving
12564
+ this._refToDeleteAfterSave = 0;
12563
12565
  this.encodeStreams = encodeStreams;
12564
12566
  this.objectsPerStream = objectsPerStream;
12565
12567
  }
12566
12568
  computeBufferSize(incremental) {
12567
12569
  return __awaiter(this, void 0, void 0, function* () {
12570
+ this._refToDeleteAfterSave = 0;
12568
12571
  const header = PDFHeader.forVersion(1, 7);
12569
12572
  let size = this.snapshot.pdfSize;
12570
12573
  if (!incremental) {
@@ -12608,6 +12611,7 @@ class PDFStreamWriter extends PDFWriter {
12608
12611
  chunk = [];
12609
12612
  compressedObjects.push(chunk);
12610
12613
  objectStreamRef = this.context.nextRef();
12614
+ this._refToDeleteAfterSave += 1;
12611
12615
  objectStreamRefs.push(objectStreamRef);
12612
12616
  }
12613
12617
  xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);
@@ -12628,6 +12632,7 @@ class PDFStreamWriter extends PDFWriter {
12628
12632
  yield waitForTick();
12629
12633
  }
12630
12634
  const xrefStreamRef = this.context.nextRef();
12635
+ this._refToDeleteAfterSave += 1;
12631
12636
  xrefStream.dict.set(PDFName.of('Size'), PDFNumber.of(this.context.largestObjectNumber + 1));
12632
12637
  if (this.snapshot.prevStartXRef) {
12633
12638
  xrefStream.dict.set(PDFName.of('Prev'), PDFNumber.of(this.snapshot.prevStartXRef));
@@ -12642,6 +12647,19 @@ class PDFStreamWriter extends PDFWriter {
12642
12647
  return { size, header, indirectObjects: uncompressedObjects, trailer };
12643
12648
  });
12644
12649
  }
12650
+ serializeToBuffer() {
12651
+ const _super = Object.create(null, {
12652
+ serializeToBuffer: { get: () => super.serializeToBuffer }
12653
+ });
12654
+ return __awaiter(this, void 0, void 0, function* () {
12655
+ const buffer = yield _super.serializeToBuffer.call(this);
12656
+ // delete xref stream created for saving
12657
+ this.context.delete(PDFRef.of(this.context.largestObjectNumber - 1));
12658
+ // fix largestObjectNumbering
12659
+ this.context.largestObjectNumber -= this._refToDeleteAfterSave;
12660
+ return buffer;
12661
+ });
12662
+ }
12645
12663
  }
12646
12664
  PDFStreamWriter.forContext = (context, objectsPerTick, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, defaultDocumentSnapshot, encodeStreams, objectsPerStream);
12647
12665
  PDFStreamWriter.forContextWithSnapshot = (context, objectsPerTick, snapshot, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream);