@adnsistemas/pdf-lib 2.6.2 → 2.6.4
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/api/PDFDocument.d.ts.map +1 -1
- package/cjs/api/PDFDocument.js +9 -5
- package/cjs/api/PDFDocument.js.map +1 -1
- package/cjs/api/PDFDocumentOptions.d.ts +1 -0
- package/cjs/api/PDFDocumentOptions.d.ts.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 +19 -0
- package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/pdf-lib.esm.js +27 -5
- 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 +27 -5
- 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/api/PDFDocument.d.ts.map +1 -1
- package/es/api/PDFDocument.js +9 -5
- package/es/api/PDFDocument.js.map +1 -1
- package/es/api/PDFDocumentOptions.d.ts +1 -0
- package/es/api/PDFDocumentOptions.d.ts.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 +19 -0
- package/es/core/writers/PDFStreamWriter.js.map +1 -1
- package/package.json +1 -1
- package/src/api/PDFDocument.ts +10 -4
- package/src/api/PDFDocumentOptions.ts +1 -0
- package/src/core/writers/PDFStreamWriter.ts +14 -0
- package/ts3.4/cjs/api/PDFDocumentOptions.d.ts +1 -0
- package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +2 -0
- package/ts3.4/es/api/PDFDocumentOptions.d.ts +1 -0
- package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +2 -0
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);
|
|
@@ -37030,7 +37048,10 @@ end\
|
|
|
37030
37048
|
*/
|
|
37031
37049
|
save(options = {}) {
|
|
37032
37050
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37033
|
-
|
|
37051
|
+
// check PDF version
|
|
37052
|
+
const vparts = this.context.header.getVersionString().split('.');
|
|
37053
|
+
const uOS = options.rewrite || Number(vparts[0]) > 1 || Number(vparts[1]) >= 5;
|
|
37054
|
+
const { useObjectStreams = uOS, objectsPerTick = 50, rewrite = false, } = options;
|
|
37034
37055
|
assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);
|
|
37035
37056
|
assertIs(objectsPerTick, 'objectsPerTick', ['number']);
|
|
37036
37057
|
assertIs(rewrite, 'rewrite', ['boolean']);
|
|
@@ -37073,13 +37094,14 @@ end\
|
|
|
37073
37094
|
*/
|
|
37074
37095
|
saveIncremental(snapshot, options = {}) {
|
|
37075
37096
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37097
|
+
// check PDF version
|
|
37098
|
+
const vparts = this.context.header.getVersionString().split('.');
|
|
37099
|
+
const uOS = Number(vparts[0]) > 1 || Number(vparts[1]) >= 5;
|
|
37076
37100
|
const { objectsPerTick = 50 } = options;
|
|
37077
37101
|
assertIs(objectsPerTick, 'objectsPerTick', ['number']);
|
|
37078
|
-
const saveOptions = Object.assign(Object.assign({}, options), { addDefaultPage: false, updateFieldAppearances: false });
|
|
37102
|
+
const saveOptions = Object.assign(Object.assign({ useObjectStreams: uOS }, options), { addDefaultPage: false, updateFieldAppearances: false });
|
|
37079
37103
|
yield this.prepareForSave(saveOptions);
|
|
37080
|
-
const Writer =
|
|
37081
|
-
? PDFStreamWriter
|
|
37082
|
-
: PDFWriter;
|
|
37104
|
+
const Writer = saveOptions.useObjectStreams ? PDFStreamWriter : PDFWriter;
|
|
37083
37105
|
return Writer.forContextWithSnapshot(this.context, objectsPerTick, snapshot).serializeToBuffer();
|
|
37084
37106
|
});
|
|
37085
37107
|
}
|