@adnsistemas/pdf-lib 2.6.1 → 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/cjs/core/parser/PDFXRefStreamParser.js +1 -1
- package/cjs/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/cjs/core/structures/PDFCrossRefStream.d.ts +1 -1
- package/cjs/core/structures/PDFCrossRefStream.d.ts.map +1 -1
- package/cjs/core/structures/PDFCrossRefStream.js +10 -4
- package/cjs/core/structures/PDFCrossRefStream.js.map +1 -1
- package/cjs/core/writers/PDFStreamWriter.d.ts +2 -0
- package/cjs/core/writers/PDFStreamWriter.d.ts.map +1 -1
- package/cjs/core/writers/PDFStreamWriter.js +22 -4
- package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/pdf-lib.esm.js +33 -9
- package/dist/pdf-lib.esm.js.map +1 -1
- package/dist/pdf-lib.esm.min.js +3 -3
- package/dist/pdf-lib.esm.min.js.map +1 -1
- package/dist/pdf-lib.js +33 -9
- package/dist/pdf-lib.js.map +1 -1
- package/dist/pdf-lib.min.js +3 -3
- package/dist/pdf-lib.min.js.map +1 -1
- package/es/core/parser/PDFXRefStreamParser.js +1 -1
- package/es/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/es/core/structures/PDFCrossRefStream.d.ts +1 -1
- package/es/core/structures/PDFCrossRefStream.d.ts.map +1 -1
- package/es/core/structures/PDFCrossRefStream.js +10 -4
- package/es/core/structures/PDFCrossRefStream.js.map +1 -1
- package/es/core/writers/PDFStreamWriter.d.ts +2 -0
- package/es/core/writers/PDFStreamWriter.d.ts.map +1 -1
- package/es/core/writers/PDFStreamWriter.js +22 -4
- package/es/core/writers/PDFStreamWriter.js.map +1 -1
- package/package.json +1 -1
- package/src/core/parser/PDFXRefStreamParser.ts +1 -1
- package/src/core/structures/PDFCrossRefStream.ts +11 -5
- package/src/core/writers/PDFStreamWriter.ts +21 -5
- package/ts3.4/cjs/core/structures/PDFCrossRefStream.d.ts +1 -1
- package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +2 -0
- package/ts3.4/es/core/structures/PDFCrossRefStream.d.ts +1 -1
- package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +2 -0
package/dist/pdf-lib.js
CHANGED
|
@@ -10445,7 +10445,6 @@
|
|
|
10445
10445
|
/**
|
|
10446
10446
|
* Entries should be added using the [[addDeletedEntry]],
|
|
10447
10447
|
* [[addUncompressedEntry]], and [[addCompressedEntry]] methods
|
|
10448
|
-
* **in order of ascending object number**.
|
|
10449
10448
|
*/
|
|
10450
10449
|
class PDFCrossRefStream extends PDFFlateStream {
|
|
10451
10450
|
constructor(dict, entries, encode = true) {
|
|
@@ -10514,9 +10513,16 @@
|
|
|
10514
10513
|
this.indexCache = Cache.populatedBy(this.computeIndex);
|
|
10515
10514
|
dict.set(PDFName.of('Type'), PDFName.of('XRef'));
|
|
10516
10515
|
}
|
|
10516
|
+
appendEntry(entry) {
|
|
10517
|
+
const eind = this.entries.findIndex((e) => e.ref.objectNumber > entry.ref.objectNumber);
|
|
10518
|
+
if (eind < 0 || eind > this.entries.length)
|
|
10519
|
+
this.entries.push(entry);
|
|
10520
|
+
else
|
|
10521
|
+
this.entries.splice(eind, 0, entry);
|
|
10522
|
+
}
|
|
10517
10523
|
addDeletedEntry(ref, nextFreeObjectNumber) {
|
|
10518
10524
|
const type = EntryType.Deleted;
|
|
10519
|
-
this.
|
|
10525
|
+
this.appendEntry({ type, ref, nextFreeObjectNumber });
|
|
10520
10526
|
this.entryTuplesCache.invalidate();
|
|
10521
10527
|
this.maxByteWidthsCache.invalidate();
|
|
10522
10528
|
this.indexCache.invalidate();
|
|
@@ -10524,7 +10530,7 @@
|
|
|
10524
10530
|
}
|
|
10525
10531
|
addUncompressedEntry(ref, offset) {
|
|
10526
10532
|
const type = EntryType.Uncompressed;
|
|
10527
|
-
this.
|
|
10533
|
+
this.appendEntry({ type, ref, offset });
|
|
10528
10534
|
this.entryTuplesCache.invalidate();
|
|
10529
10535
|
this.maxByteWidthsCache.invalidate();
|
|
10530
10536
|
this.indexCache.invalidate();
|
|
@@ -10532,7 +10538,7 @@
|
|
|
10532
10538
|
}
|
|
10533
10539
|
addCompressedEntry(ref, objectStreamRef, index) {
|
|
10534
10540
|
const type = EntryType.Compressed;
|
|
10535
|
-
this.
|
|
10541
|
+
this.appendEntry({ type, ref, objectStreamRef, index });
|
|
10536
10542
|
this.entryTuplesCache.invalidate();
|
|
10537
10543
|
this.maxByteWidthsCache.invalidate();
|
|
10538
10544
|
this.indexCache.invalidate();
|
|
@@ -12560,12 +12566,14 @@
|
|
|
12560
12566
|
class PDFStreamWriter extends PDFWriter {
|
|
12561
12567
|
constructor(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream) {
|
|
12562
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;
|
|
12563
12571
|
this.encodeStreams = encodeStreams;
|
|
12564
12572
|
this.objectsPerStream = objectsPerStream;
|
|
12565
12573
|
}
|
|
12566
12574
|
computeBufferSize(incremental) {
|
|
12567
12575
|
return __awaiter(this, void 0, void 0, function* () {
|
|
12568
|
-
|
|
12576
|
+
this._refToDeleteAfterSave = 0;
|
|
12569
12577
|
const header = PDFHeader.forVersion(1, 7);
|
|
12570
12578
|
let size = this.snapshot.pdfSize;
|
|
12571
12579
|
if (!incremental) {
|
|
@@ -12608,7 +12616,8 @@
|
|
|
12608
12616
|
if (!chunk || chunk.length % this.objectsPerStream === 0) {
|
|
12609
12617
|
chunk = [];
|
|
12610
12618
|
compressedObjects.push(chunk);
|
|
12611
|
-
objectStreamRef =
|
|
12619
|
+
objectStreamRef = this.context.nextRef();
|
|
12620
|
+
this._refToDeleteAfterSave += 1;
|
|
12612
12621
|
objectStreamRefs.push(objectStreamRef);
|
|
12613
12622
|
}
|
|
12614
12623
|
xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);
|
|
@@ -12619,6 +12628,7 @@
|
|
|
12619
12628
|
const chunk = compressedObjects[idx];
|
|
12620
12629
|
const ref = objectStreamRefs[idx];
|
|
12621
12630
|
const objectStream = PDFObjectStream.withContextAndObjects(this.context, chunk, this.encodeStreams);
|
|
12631
|
+
this.context.assign(ref, objectStream);
|
|
12622
12632
|
if (security)
|
|
12623
12633
|
this.encrypt(ref, objectStream, security);
|
|
12624
12634
|
xrefStream.addUncompressedEntry(ref, size);
|
|
@@ -12627,8 +12637,9 @@
|
|
|
12627
12637
|
if (this.shouldWaitForTick(chunk.length))
|
|
12628
12638
|
yield waitForTick();
|
|
12629
12639
|
}
|
|
12630
|
-
const xrefStreamRef =
|
|
12631
|
-
|
|
12640
|
+
const xrefStreamRef = this.context.nextRef();
|
|
12641
|
+
this._refToDeleteAfterSave += 1;
|
|
12642
|
+
xrefStream.dict.set(PDFName.of('Size'), PDFNumber.of(this.context.largestObjectNumber + 1));
|
|
12632
12643
|
if (this.snapshot.prevStartXRef) {
|
|
12633
12644
|
xrefStream.dict.set(PDFName.of('Prev'), PDFNumber.of(this.snapshot.prevStartXRef));
|
|
12634
12645
|
}
|
|
@@ -12642,6 +12653,19 @@
|
|
|
12642
12653
|
return { size, header, indirectObjects: uncompressedObjects, trailer };
|
|
12643
12654
|
});
|
|
12644
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
|
+
}
|
|
12645
12669
|
}
|
|
12646
12670
|
PDFStreamWriter.forContext = (context, objectsPerTick, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, defaultDocumentSnapshot, encodeStreams, objectsPerStream);
|
|
12647
12671
|
PDFStreamWriter.forContextWithSnapshot = (context, objectsPerTick, snapshot, encodeStreams = true, objectsPerStream = 50) => new PDFStreamWriter(context, objectsPerTick, snapshot, encodeStreams, objectsPerStream);
|
|
@@ -15963,7 +15987,7 @@ end\
|
|
|
15963
15987
|
type = 1;
|
|
15964
15988
|
const objectNumber = firstObjectNumber + objIdx;
|
|
15965
15989
|
const entry = {
|
|
15966
|
-
ref: PDFRef.of(objectNumber, generationNumber),
|
|
15990
|
+
ref: PDFRef.of(objectNumber, type === 2 ? 0 : generationNumber),
|
|
15967
15991
|
offset,
|
|
15968
15992
|
deleted: type === 0,
|
|
15969
15993
|
inObjectStream: type === 2,
|