@adnsistemas/pdf-lib 2.7.2 → 2.8.0
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/README.md +5 -3
- package/cjs/api/PDFDocument.d.ts +16 -2
- package/cjs/api/PDFDocument.d.ts.map +1 -1
- package/cjs/api/PDFDocument.js +59 -5
- package/cjs/api/PDFDocument.js.map +1 -1
- package/cjs/api/PDFEmbeddedFile.d.ts +6 -0
- package/cjs/api/PDFEmbeddedFile.d.ts.map +1 -1
- package/cjs/api/PDFEmbeddedFile.js +10 -0
- package/cjs/api/PDFEmbeddedFile.js.map +1 -1
- package/cjs/api/PDFPage.js +1 -1
- package/cjs/api/operations.js +2 -2
- package/cjs/api/operations.js.map +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +3 -7
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
- package/cjs/core/embedders/JpegEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/JpegEmbedder.js +1 -1
- package/cjs/core/embedders/JpegEmbedder.js.map +1 -1
- package/cjs/core/objects/PDFString.js +1 -1
- package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -1
- package/cjs/core/parser/PDFObjectParser.js +2 -1
- package/cjs/core/parser/PDFObjectParser.js.map +1 -1
- package/cjs/core/structures/PDFCatalog.d.ts +3 -0
- package/cjs/core/structures/PDFCatalog.d.ts.map +1 -1
- package/cjs/core/structures/PDFCatalog.js +7 -0
- package/cjs/core/structures/PDFCatalog.js.map +1 -1
- package/cjs/core/writers/PDFWriter.d.ts +8 -3
- package/cjs/core/writers/PDFWriter.d.ts.map +1 -1
- package/cjs/core/writers/PDFWriter.js +30 -7
- package/cjs/core/writers/PDFWriter.js.map +1 -1
- package/dist/pdf-lib.esm.js +115 -25
- 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 +115 -25
- 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 +16 -2
- package/es/api/PDFDocument.d.ts.map +1 -1
- package/es/api/PDFDocument.js +59 -5
- package/es/api/PDFDocument.js.map +1 -1
- package/es/api/PDFEmbeddedFile.d.ts +6 -0
- package/es/api/PDFEmbeddedFile.d.ts.map +1 -1
- package/es/api/PDFEmbeddedFile.js +10 -0
- package/es/api/PDFEmbeddedFile.js.map +1 -1
- package/es/api/PDFPage.js +1 -1
- package/es/api/operations.js +2 -2
- package/es/api/operations.js.map +1 -1
- package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
- package/es/api/snapshot/IncrementalDocumentSnapshot.js +3 -7
- package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
- package/es/core/embedders/JpegEmbedder.d.ts.map +1 -1
- package/es/core/embedders/JpegEmbedder.js +1 -1
- package/es/core/embedders/JpegEmbedder.js.map +1 -1
- package/es/core/objects/PDFString.js +1 -1
- package/es/core/parser/PDFObjectParser.d.ts.map +1 -1
- package/es/core/parser/PDFObjectParser.js +3 -2
- package/es/core/parser/PDFObjectParser.js.map +1 -1
- package/es/core/structures/PDFCatalog.d.ts +3 -0
- package/es/core/structures/PDFCatalog.d.ts.map +1 -1
- package/es/core/structures/PDFCatalog.js +7 -0
- package/es/core/structures/PDFCatalog.js.map +1 -1
- package/es/core/writers/PDFWriter.d.ts +8 -3
- package/es/core/writers/PDFWriter.d.ts.map +1 -1
- package/es/core/writers/PDFWriter.js +30 -7
- package/es/core/writers/PDFWriter.js.map +1 -1
- package/package.json +4 -2
- package/src/api/PDFDocument.ts +75 -10
- package/src/api/PDFEmbeddedFile.ts +12 -0
- package/src/api/PDFPage.ts +1 -1
- package/src/api/operations.ts +2 -2
- package/src/api/snapshot/IncrementalDocumentSnapshot.ts +5 -11
- package/src/core/embedders/JpegEmbedder.ts +5 -1
- package/src/core/objects/PDFString.ts +1 -1
- package/src/core/parser/PDFObjectParser.ts +5 -2
- package/src/core/structures/PDFCatalog.ts +9 -0
- package/src/core/writers/PDFWriter.ts +32 -9
- package/ts3.4/cjs/api/PDFDocument.d.ts +16 -2
- package/ts3.4/cjs/api/PDFEmbeddedFile.d.ts +6 -0
- package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +3 -0
- package/ts3.4/cjs/core/writers/PDFWriter.d.ts +11 -3
- package/ts3.4/es/api/PDFDocument.d.ts +16 -2
- package/ts3.4/es/api/PDFEmbeddedFile.d.ts +6 -0
- package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/ts3.4/es/core/structures/PDFCatalog.d.ts +3 -0
- package/ts3.4/es/core/writers/PDFWriter.d.ts +11 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JpegEmbedder.js","sourceRoot":"","sources":["../../../src/core/embedders/JpegEmbedder.ts"],"names":[],"mappings":";AAGA,kBAAkB;AAClB,MAAM,OAAO,GAAG;IACd,MAAM,EAAE,MAAM,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM;CACvB,CAAC;AAEF,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;AAC3B,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AAED,MAAM,mBAAmB,GAA8C;IACrE,CAAC,EAAE,UAAU,CAAC,UAAU;IACxB,CAAC,EAAE,UAAU,CAAC,SAAS;IACvB,CAAC,EAAE,UAAU,CAAC,UAAU;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,YAAY;IAChB,MAAM,CAAO,GAAG,CAAC,SAAqB;;YACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"JpegEmbedder.js","sourceRoot":"","sources":["../../../src/core/embedders/JpegEmbedder.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ class PDFString extends PDFObject {
|
|
|
45
45
|
pushByte(CharCodes.LeftParen);
|
|
46
46
|
else if (byte === CharCodes.RightParen)
|
|
47
47
|
pushByte(CharCodes.RightParen);
|
|
48
|
-
else if (byte === CharCodes.
|
|
48
|
+
else if (byte === CharCodes.BackSlash)
|
|
49
49
|
pushByte(CharCodes.BackSlash);
|
|
50
50
|
else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {
|
|
51
51
|
octal += char;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFObjectParser.d.ts","sourceRoot":"","sources":["../../../src/core/parser/PDFObjectParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAET,MAAM,WAAW,CAAC;AACnB,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,OAAO,OAAoB,MAAM,oBAAoB,CAAC;AACtD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,eAAe,CAAC;AAUvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,cAAM,eAAgB,SAAQ,UAAU;IACtC,MAAM,CAAC,QAAQ,UACN,UAAU,WACR,UAAU,eACN,OAAO,qBAC8C;IAEpE,MAAM,CAAC,aAAa,eACN,UAAU,WACb,UAAU,2CAEqC;IAE1D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAyB;gBAGtD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,UAAU,EACnB,UAAU,UAAQ,EAClB,aAAa,CAAC,EAAE,sBAAsB;IAQxC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS;IAwBpC,SAAS,CAAC,gBAAgB,IAAI,SAAS,GAAG,MAAM;IAmBhD,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY;IAwBpD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"PDFObjectParser.d.ts","sourceRoot":"","sources":["../../../src/core/parser/PDFObjectParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAET,MAAM,WAAW,CAAC;AACnB,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,OAAO,OAAoB,MAAM,oBAAoB,CAAC;AACtD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,eAAe,CAAC;AAUvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,cAAM,eAAgB,SAAQ,UAAU;IACtC,MAAM,CAAC,QAAQ,UACN,UAAU,WACR,UAAU,eACN,OAAO,qBAC8C;IAEpE,MAAM,CAAC,aAAa,eACN,UAAU,WACb,UAAU,2CAEqC;IAE1D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAyB;gBAGtD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,UAAU,EACnB,UAAU,UAAQ,EAClB,aAAa,CAAC,EAAE,sBAAsB;IAQxC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS;IAwBpC,SAAS,CAAC,gBAAgB,IAAI,SAAS,GAAG,MAAM;IAmBhD,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY;IAwBpD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS;IA8C9C,SAAS,CAAC,SAAS,IAAI,OAAO;IAc9B,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ;IAc5C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAmC1C,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IA8C9D,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ;CA4BrD;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -19,7 +19,7 @@ import { IsDelimiter } from '../syntax/Delimiters.js';
|
|
|
19
19
|
import { Keywords } from '../syntax/Keywords.js';
|
|
20
20
|
import { IsDigit, IsNumeric } from '../syntax/Numeric.js';
|
|
21
21
|
import { IsWhitespace } from '../syntax/Whitespace.js';
|
|
22
|
-
import { charFromCode } from '../../utils/index.js';
|
|
22
|
+
import { arrayAsString, charFromCode } from '../../utils/index.js';
|
|
23
23
|
// TODO: Throw error if eof is reached before finishing object parse...
|
|
24
24
|
class PDFObjectParser extends BaseParser {
|
|
25
25
|
constructor(byteStream, context, capNumbers = false, cryptoFactory) {
|
|
@@ -109,7 +109,8 @@ class PDFObjectParser extends BaseParser {
|
|
|
109
109
|
let actualValue = value.substring(1, value.length - 1);
|
|
110
110
|
if (this.cryptoFactory && ref) {
|
|
111
111
|
const transformer = this.cryptoFactory.createCipherTransform(ref.objectNumber, ref.generationNumber);
|
|
112
|
-
|
|
112
|
+
const decrypted = transformer.decryptBytes(PDFString.of(actualValue).asBytes());
|
|
113
|
+
actualValue = arrayAsString(decrypted);
|
|
113
114
|
}
|
|
114
115
|
// Remove the outer parens so they aren't part of the contents
|
|
115
116
|
return PDFString.of(actualValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFObjectParser.js","sourceRoot":"","sources":["../../../src/core/parser/PDFObjectParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EAErB,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,OAAoB,MAAM,oBAAoB,CAAC;AACtD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"PDFObjectParser.js","sourceRoot":"","sources":["../../../src/core/parser/PDFObjectParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,14 @@ import PDFContext from '../PDFContext';
|
|
|
4
4
|
import PDFPageTree from './PDFPageTree';
|
|
5
5
|
import { PDFAcroForm } from '../acroform';
|
|
6
6
|
import ViewerPreferences from '../interactive/ViewerPreferences';
|
|
7
|
+
import PDFArray from '../objects/PDFArray';
|
|
7
8
|
declare class PDFCatalog extends PDFDict {
|
|
8
9
|
static withContextAndPages: (context: PDFContext, pages: PDFPageTree | PDFRef) => PDFCatalog;
|
|
9
10
|
static fromMapWithContext: (map: DictMap, context: PDFContext) => PDFCatalog;
|
|
10
11
|
Pages(): PDFPageTree;
|
|
11
12
|
AcroForm(): PDFDict | undefined;
|
|
13
|
+
Names(): PDFDict | undefined;
|
|
14
|
+
AttachedFiles(): PDFArray | undefined;
|
|
12
15
|
getAcroForm(): PDFAcroForm | undefined;
|
|
13
16
|
getOrCreateAcroForm(): PDFAcroForm;
|
|
14
17
|
ViewerPreferences(): PDFDict | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFCatalog.d.ts","sourceRoot":"","sources":["../../../src/core/structures/PDFCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"PDFCatalog.d.ts","sourceRoot":"","sources":["../../../src/core/structures/PDFCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,cAAM,UAAW,SAAQ,OAAO;IAC9B,MAAM,CAAC,mBAAmB,YACf,UAAU,SACZ,WAAW,GAAG,MAAM,gBAM3B;IAEF,MAAM,CAAC,kBAAkB,0BAA2B,UAAU,gBAC/B;IAE/B,KAAK,IAAI,WAAW;IAIpB,QAAQ,IAAI,OAAO,GAAG,SAAS;IAI/B,KAAK,IAAI,OAAO,GAAG,SAAS;IAI5B,aAAa,IAAI,QAAQ,GAAG,SAAS;IAIrC,WAAW,IAAI,WAAW,GAAG,SAAS;IAMtC,mBAAmB,IAAI,WAAW;IAUlC,iBAAiB,IAAI,OAAO,GAAG,SAAS;IAIxC,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAMrD,4BAA4B,IAAI,iBAAiB;IAUjD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAMtD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGpC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -2,6 +2,7 @@ import PDFDict from '../objects/PDFDict.js';
|
|
|
2
2
|
import PDFName from '../objects/PDFName.js';
|
|
3
3
|
import { PDFAcroForm } from '../acroform/index.js';
|
|
4
4
|
import ViewerPreferences from '../interactive/ViewerPreferences.js';
|
|
5
|
+
import PDFArray from '../objects/PDFArray.js';
|
|
5
6
|
class PDFCatalog extends PDFDict {
|
|
6
7
|
Pages() {
|
|
7
8
|
return this.lookup(PDFName.of('Pages'), PDFDict);
|
|
@@ -9,6 +10,12 @@ class PDFCatalog extends PDFDict {
|
|
|
9
10
|
AcroForm() {
|
|
10
11
|
return this.lookupMaybe(PDFName.of('AcroForm'), PDFDict);
|
|
11
12
|
}
|
|
13
|
+
Names() {
|
|
14
|
+
return this.lookupMaybe(PDFName.of('Names'), PDFDict);
|
|
15
|
+
}
|
|
16
|
+
AttachedFiles() {
|
|
17
|
+
return this.lookupMaybe(PDFName.of('AF'), PDFArray);
|
|
18
|
+
}
|
|
12
19
|
getAcroForm() {
|
|
13
20
|
const dict = this.AcroForm();
|
|
14
21
|
if (!dict)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFCatalog.js","sourceRoot":"","sources":["../../../src/core/structures/PDFCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,oBAAoB,CAAC;AACtD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"PDFCatalog.js","sourceRoot":"","sources":["../../../src/core/structures/PDFCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,15 +30,20 @@ declare class PDFWriter {
|
|
|
30
30
|
* be corrected, to be accurate.
|
|
31
31
|
*/
|
|
32
32
|
protected _largestSkippedObjectNum: number;
|
|
33
|
+
/**
|
|
34
|
+
* Used to check wheter an object should be saved or not, preserves the object number of the
|
|
35
|
+
* last XRef Stream object, if there is one.
|
|
36
|
+
*/
|
|
37
|
+
protected _lastXRefObjectNumber: number;
|
|
33
38
|
/**
|
|
34
39
|
* For incremental saves, defers the decision to the snapshot.
|
|
35
|
-
* For full saves, checks that the object is not
|
|
40
|
+
* For full saves, checks that the object is not the last XRef stream object.
|
|
36
41
|
* @param {boolean} incremental If making an incremental save, or a full save of the PDF
|
|
37
42
|
* @param {number} objNum Object number
|
|
38
|
-
* @param {PDFObject}
|
|
43
|
+
* @param {[PDFRef, PDFObject][]} objects List of objects that form the PDF
|
|
39
44
|
* @returns {boolean} whether the object should be saved or not
|
|
40
45
|
*/
|
|
41
|
-
protected shouldSave(incremental: boolean, objNum: number,
|
|
46
|
+
protected shouldSave(incremental: boolean, objNum: number, objects: [PDFRef, PDFObject][]): boolean;
|
|
42
47
|
serializeToBuffer(): Promise<Uint8Array>;
|
|
43
48
|
protected computeIndirectObjectSize([ref, object]: [
|
|
44
49
|
PDFRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFWriter.d.ts","sourceRoot":"","sources":["../../../src/core/writers/PDFWriter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,UAAU,MAAM,eAAe,CAAC;AAKvC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAKlD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,cAAM,SAAS;IACb,MAAM,CAAC,UAAU,YAAa,UAAU,kBAAkB,MAAM,eACE;IAElE,MAAM,CAAC,sBAAsB,YAClB,UAAU,kBACH,MAAM,YACZ,gBAAgB,eAC0B;IAEtD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC9C,OAAO,CAAC,aAAa,CAAK;IAE1B,SAAS,aACP,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,gBAAgB;IAO5B;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAK;IAE/C;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"PDFWriter.d.ts","sourceRoot":"","sources":["../../../src/core/writers/PDFWriter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,UAAU,MAAM,eAAe,CAAC;AAKvC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAKlD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IACvC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,cAAM,SAAS;IACb,MAAM,CAAC,UAAU,YAAa,UAAU,kBAAkB,MAAM,eACE;IAElE,MAAM,CAAC,sBAAsB,YAClB,UAAU,kBACH,MAAM,YACZ,gBAAgB,eAC0B;IAEtD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAEvC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC9C,OAAO,CAAC,aAAa,CAAK;IAE1B,SAAS,aACP,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,gBAAgB;IAO5B;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAK;IAE/C;;;OAGG;IACH,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAK;IAC5C;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAC7B,OAAO;IA+BJ,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC;IAmE9C,SAAS,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE;QACjD,MAAM;QACN,SAAS;KACV,GAAG,MAAM;IAMV,SAAS,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO;cAoB5C,iBAAiB,CAC/B,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,iBAAiB,CAAC;IAsD7B,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW;IAYvE,SAAS,CAAC,iBAAiB,MAAO,MAAM,aAGtC;CACH;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -21,6 +21,11 @@ class PDFWriter {
|
|
|
21
21
|
* be corrected, to be accurate.
|
|
22
22
|
*/
|
|
23
23
|
this._largestSkippedObjectNum = 0;
|
|
24
|
+
/**
|
|
25
|
+
* Used to check wheter an object should be saved or not, preserves the object number of the
|
|
26
|
+
* last XRef Stream object, if there is one.
|
|
27
|
+
*/
|
|
28
|
+
this._lastXRefObjectNumber = 0;
|
|
24
29
|
this.shouldWaitForTick = (n) => {
|
|
25
30
|
this.parsedObjects += n;
|
|
26
31
|
return this.parsedObjects % this.objectsPerTick === 0;
|
|
@@ -31,20 +36,37 @@ class PDFWriter {
|
|
|
31
36
|
}
|
|
32
37
|
/**
|
|
33
38
|
* For incremental saves, defers the decision to the snapshot.
|
|
34
|
-
* For full saves, checks that the object is not
|
|
39
|
+
* For full saves, checks that the object is not the last XRef stream object.
|
|
35
40
|
* @param {boolean} incremental If making an incremental save, or a full save of the PDF
|
|
36
41
|
* @param {number} objNum Object number
|
|
37
|
-
* @param {PDFObject}
|
|
42
|
+
* @param {[PDFRef, PDFObject][]} objects List of objects that form the PDF
|
|
38
43
|
* @returns {boolean} whether the object should be saved or not
|
|
39
44
|
*/
|
|
40
|
-
shouldSave(incremental, objNum,
|
|
45
|
+
shouldSave(incremental, objNum, objects) {
|
|
41
46
|
let should = true;
|
|
42
47
|
if (incremental) {
|
|
43
48
|
should = this.snapshot.shouldSave(objNum);
|
|
44
49
|
}
|
|
45
50
|
else {
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
// only the last XRef Stream will be regenerated on save
|
|
52
|
+
if (!this._lastXRefObjectNumber) {
|
|
53
|
+
// if no XRef Stream, then nothing should be skipped
|
|
54
|
+
this._lastXRefObjectNumber = this.context.largestObjectNumber + 1;
|
|
55
|
+
const checkWatermark = this._lastXRefObjectNumber - 10; // max number of objects in the final part of the PDF to check
|
|
56
|
+
// search the last XRef Stream, if there is one, objects are expected to be in object number order
|
|
57
|
+
for (let idx = objects.length - 1; idx > 0; idx--) {
|
|
58
|
+
// if not in last 'rangeToCheck' objects, there is none that should be skipped, most probably a linearized PDF, or without XRef Streams
|
|
59
|
+
if (objects[idx][0].objectNumber < checkWatermark)
|
|
60
|
+
break;
|
|
61
|
+
const object = objects[idx][1];
|
|
62
|
+
if (object instanceof PDFRawStream &&
|
|
63
|
+
object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef')) {
|
|
64
|
+
this._lastXRefObjectNumber = objects[idx][0].objectNumber;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
should = objNum !== this._lastXRefObjectNumber;
|
|
48
70
|
}
|
|
49
71
|
if (!should && this._largestSkippedObjectNum < objNum)
|
|
50
72
|
this._largestSkippedObjectNum = objNum;
|
|
@@ -63,7 +85,7 @@ class PDFWriter {
|
|
|
63
85
|
buffer[offset++] = CharCodes.Newline;
|
|
64
86
|
for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {
|
|
65
87
|
const [ref, object] = indirectObjects[idx];
|
|
66
|
-
if (!this.shouldSave(incremental, ref.objectNumber,
|
|
88
|
+
if (!this.shouldSave(incremental, ref.objectNumber, indirectObjects)) {
|
|
67
89
|
continue;
|
|
68
90
|
}
|
|
69
91
|
const objectNumber = String(ref.objectNumber);
|
|
@@ -129,6 +151,7 @@ class PDFWriter {
|
|
|
129
151
|
computeBufferSize(incremental) {
|
|
130
152
|
return __awaiter(this, void 0, void 0, function* () {
|
|
131
153
|
this._largestSkippedObjectNum = 0;
|
|
154
|
+
this._lastXRefObjectNumber = 0;
|
|
132
155
|
const header = PDFHeader.forVersion(1, 7);
|
|
133
156
|
let size = this.snapshot.pdfSize;
|
|
134
157
|
if (!incremental) {
|
|
@@ -141,7 +164,7 @@ class PDFWriter {
|
|
|
141
164
|
for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {
|
|
142
165
|
const indirectObject = indirectObjects[idx];
|
|
143
166
|
const [ref, object] = indirectObject;
|
|
144
|
-
if (!this.shouldSave(incremental, ref.objectNumber,
|
|
167
|
+
if (!this.shouldSave(incremental, ref.objectNumber, indirectObjects))
|
|
145
168
|
continue;
|
|
146
169
|
if (security)
|
|
147
170
|
this.encrypt(ref, object, security);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFWriter.js","sourceRoot":"","sources":["../../../src/core/writers/PDFWriter.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,cAAc,MAAM,4BAA4B,CAAC;AAGxD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAWnD,MAAM,SAAS;IAgBb,YACE,OAAmB,EACnB,cAAsB,EACtB,QAA0B;QALpB,kBAAa,GAAG,CAAC,CAAC;QAY1B;;;;WAIG;QACO,6BAAwB,GAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PDFWriter.js","sourceRoot":"","sources":["../../../src/core/writers/PDFWriter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adnsistemas/pdf-lib",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "Create and modify PDF files with JavaScript",
|
|
5
5
|
"author": "Andrew Dillon <andrew.dillon.j@gmail.com>",
|
|
6
6
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
|
|
@@ -43,7 +43,9 @@
|
|
|
43
43
|
"Donald Ness (https://github.com/programmarchy)",
|
|
44
44
|
"Remus DRAICA (https://github.com/remdra)",
|
|
45
45
|
"David Abdala (https://github.com/adnsistemas)",
|
|
46
|
-
"Eran Ohayon (https://github.com/erano067)"
|
|
46
|
+
"Eran Ohayon (https://github.com/erano067)",
|
|
47
|
+
"Shaun Verch (https://github.com/sverch)",
|
|
48
|
+
"Guido Flohr (https://github.com/gflohr)"
|
|
47
49
|
],
|
|
48
50
|
"scripts": {
|
|
49
51
|
"release": "yarn release:prep && release-it",
|
package/src/api/PDFDocument.ts
CHANGED
|
@@ -82,7 +82,7 @@ import PDFSecurity, { SecurityOptions } from '../core/security/PDFSecurity';
|
|
|
82
82
|
import { IncrementalDocumentSnapshot } from './snapshot';
|
|
83
83
|
import type { DocumentSnapshot } from './snapshot';
|
|
84
84
|
|
|
85
|
-
export type
|
|
85
|
+
export type BasePDFAttachment = {
|
|
86
86
|
name: string;
|
|
87
87
|
data: Uint8Array;
|
|
88
88
|
mimeType: string | undefined;
|
|
@@ -92,6 +92,17 @@ export type PDFAttachment = {
|
|
|
92
92
|
modificationDate: Date | undefined;
|
|
93
93
|
};
|
|
94
94
|
|
|
95
|
+
export type SavedPDFAttachment = BasePDFAttachment & {
|
|
96
|
+
embeddedFileDict: PDFDict;
|
|
97
|
+
specRef: PDFRef;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export type UnsavedPDFAttachment = BasePDFAttachment & {
|
|
101
|
+
pdfEmbeddedFile: PDFEmbeddedFile;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export type PDFAttachment = UnsavedPDFAttachment | SavedPDFAttachment;
|
|
105
|
+
|
|
95
106
|
export type PDFObjectVersions = {
|
|
96
107
|
ref: PDFRef;
|
|
97
108
|
actual: PDFObject | undefined;
|
|
@@ -1011,15 +1022,19 @@ export default class PDFDocument {
|
|
|
1011
1022
|
for (let idx = 0, len = EFNames.size(); idx < len; idx += 2) {
|
|
1012
1023
|
const fileName = EFNames.lookup(idx) as PDFHexString | PDFString;
|
|
1013
1024
|
const fileSpec = EFNames.lookup(idx + 1, PDFDict);
|
|
1014
|
-
rawAttachments.push({
|
|
1025
|
+
rawAttachments.push({
|
|
1026
|
+
fileName,
|
|
1027
|
+
fileSpec,
|
|
1028
|
+
specRef: EFNames.get(idx + 1) as PDFRef,
|
|
1029
|
+
});
|
|
1015
1030
|
}
|
|
1016
1031
|
|
|
1017
1032
|
return rawAttachments;
|
|
1018
1033
|
}
|
|
1019
1034
|
|
|
1020
|
-
private getSavedAttachments():
|
|
1035
|
+
private getSavedAttachments(): SavedPDFAttachment[] {
|
|
1021
1036
|
const rawAttachments = this.getRawAttachments();
|
|
1022
|
-
return rawAttachments.flatMap(({ fileName, fileSpec }) => {
|
|
1037
|
+
return rawAttachments.flatMap(({ fileName, fileSpec, specRef }) => {
|
|
1023
1038
|
const efDict = fileSpec.lookup(PDFName.of('EF'));
|
|
1024
1039
|
if (!(efDict instanceof PDFDict)) return [];
|
|
1025
1040
|
|
|
@@ -1062,9 +1077,12 @@ export default class PDFDocument {
|
|
|
1062
1077
|
}
|
|
1063
1078
|
}
|
|
1064
1079
|
|
|
1065
|
-
const
|
|
1066
|
-
|
|
1067
|
-
|
|
1080
|
+
const descRaw = fileSpec.lookup(PDFName.of('Desc'));
|
|
1081
|
+
let description: string | undefined;
|
|
1082
|
+
|
|
1083
|
+
if (descRaw instanceof PDFHexString) {
|
|
1084
|
+
description = descRaw.decodeText();
|
|
1085
|
+
}
|
|
1068
1086
|
|
|
1069
1087
|
return [
|
|
1070
1088
|
{
|
|
@@ -1077,13 +1095,16 @@ export default class PDFDocument {
|
|
|
1077
1095
|
description,
|
|
1078
1096
|
creationDate,
|
|
1079
1097
|
modificationDate,
|
|
1098
|
+
embeddedFileDict: efDict,
|
|
1099
|
+
specRef,
|
|
1080
1100
|
},
|
|
1081
1101
|
];
|
|
1082
1102
|
});
|
|
1083
1103
|
}
|
|
1084
1104
|
|
|
1085
|
-
private getUnsavedAttachments():
|
|
1086
|
-
const attachments = this.embeddedFiles.
|
|
1105
|
+
private getUnsavedAttachments(): UnsavedPDFAttachment[] {
|
|
1106
|
+
const attachments = this.embeddedFiles.flatMap((file) => {
|
|
1107
|
+
if (file.getAlreadyEmbedded()) return [];
|
|
1087
1108
|
const embedder = file.getEmbedder();
|
|
1088
1109
|
|
|
1089
1110
|
return {
|
|
@@ -1094,6 +1115,7 @@ export default class PDFDocument {
|
|
|
1094
1115
|
afRelationship: embedder.options.afRelationship,
|
|
1095
1116
|
creationDate: embedder.options.creationDate,
|
|
1096
1117
|
modificationDate: embedder.options.modificationDate,
|
|
1118
|
+
pdfEmbeddedFile: file,
|
|
1097
1119
|
};
|
|
1098
1120
|
});
|
|
1099
1121
|
|
|
@@ -1112,6 +1134,49 @@ export default class PDFDocument {
|
|
|
1112
1134
|
return [...savedAttachments, ...unsavedAttachments];
|
|
1113
1135
|
}
|
|
1114
1136
|
|
|
1137
|
+
/**
|
|
1138
|
+
* Removes an attachment from PDF, based on name.
|
|
1139
|
+
* @param {string} name Name of the attachmet to remove.
|
|
1140
|
+
*/
|
|
1141
|
+
detach(name: string) {
|
|
1142
|
+
const attachedFiles = this.getAttachments();
|
|
1143
|
+
attachedFiles.forEach((file) => {
|
|
1144
|
+
if (file.name !== name) return;
|
|
1145
|
+
// the file wasn't embedded into context yet
|
|
1146
|
+
if ('pdfEmbeddedFile' in file) {
|
|
1147
|
+
const i = this.embeddedFiles.findIndex(
|
|
1148
|
+
(f) => file.pdfEmbeddedFile === f,
|
|
1149
|
+
);
|
|
1150
|
+
if (i !== undefined) this.embeddedFiles.splice(i, 1);
|
|
1151
|
+
} else {
|
|
1152
|
+
// remove references from catalog
|
|
1153
|
+
const namesArr = this.catalog
|
|
1154
|
+
.Names()
|
|
1155
|
+
?.lookup(PDFName.of('EmbeddedFiles'), PDFDict)
|
|
1156
|
+
.lookup(PDFName.of('Names'), PDFArray);
|
|
1157
|
+
const iNames = namesArr?.indexOf(file.specRef);
|
|
1158
|
+
if (iNames !== undefined && iNames > 0) {
|
|
1159
|
+
// attachment spec ref
|
|
1160
|
+
namesArr?.remove(iNames);
|
|
1161
|
+
// attachment name
|
|
1162
|
+
namesArr?.remove(iNames - 1);
|
|
1163
|
+
}
|
|
1164
|
+
// AF-Tag for PDF-A3 compliance
|
|
1165
|
+
const AF = this.catalog.AttachedFiles();
|
|
1166
|
+
const afIndex = AF?.indexOf(file.specRef);
|
|
1167
|
+
if (afIndex !== undefined) AF?.remove(afIndex);
|
|
1168
|
+
|
|
1169
|
+
// remove references from context
|
|
1170
|
+
const streamRef = this.context
|
|
1171
|
+
.lookupMaybe(file.specRef, PDFDict)
|
|
1172
|
+
?.lookupMaybe(PDFName.of('EF'), PDFDict)
|
|
1173
|
+
?.get(PDFName.of('F')) as PDFRef | undefined;
|
|
1174
|
+
if (streamRef) this.context.delete(streamRef);
|
|
1175
|
+
this.context.delete(file.specRef);
|
|
1176
|
+
}
|
|
1177
|
+
});
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1115
1180
|
/**
|
|
1116
1181
|
* Embed a font into this document. The input data can be provided in multiple
|
|
1117
1182
|
* formats:
|
|
@@ -1638,7 +1703,7 @@ export default class PDFDocument {
|
|
|
1638
1703
|
}
|
|
1639
1704
|
|
|
1640
1705
|
takeSnapshot(): DocumentSnapshot {
|
|
1641
|
-
const indirectObjects: number
|
|
1706
|
+
const indirectObjects: Set<number> = new Set<number>();
|
|
1642
1707
|
|
|
1643
1708
|
const snapshot = new IncrementalDocumentSnapshot(
|
|
1644
1709
|
this.context.largestObjectNumber,
|
|
@@ -95,4 +95,16 @@ export default class PDFEmbeddedFile implements Embeddable {
|
|
|
95
95
|
getEmbedder() {
|
|
96
96
|
return this.embedder;
|
|
97
97
|
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Returns whether or not this file has already been embedded.
|
|
101
|
+
* @returns true if the file has already been embedded, false otherwise.
|
|
102
|
+
*/
|
|
103
|
+
getAlreadyEmbedded() {
|
|
104
|
+
return this.alreadyEmbedded;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
getRef() {
|
|
108
|
+
return this.ref;
|
|
109
|
+
}
|
|
98
110
|
}
|
package/src/api/PDFPage.ts
CHANGED
|
@@ -1275,7 +1275,7 @@ export default class PDFPage {
|
|
|
1275
1275
|
rotate: options.rotate ?? degrees(0),
|
|
1276
1276
|
color: options.color ?? undefined,
|
|
1277
1277
|
borderColor: options.borderColor ?? undefined,
|
|
1278
|
-
borderWidth: options.borderWidth ??
|
|
1278
|
+
borderWidth: options.borderWidth ?? 1,
|
|
1279
1279
|
borderDashArray: options.borderDashArray ?? undefined,
|
|
1280
1280
|
borderDashPhase: options.borderDashPhase ?? undefined,
|
|
1281
1281
|
borderLineCap: options.borderLineCap ?? undefined,
|
package/src/api/operations.ts
CHANGED
|
@@ -845,11 +845,11 @@ const getDrawingOperator = ({
|
|
|
845
845
|
borderColor?: Color;
|
|
846
846
|
fillRule?: FillRule;
|
|
847
847
|
}) => {
|
|
848
|
-
if (color && borderColor && borderWidth) {
|
|
848
|
+
if (color && borderColor && borderWidth !== 0) {
|
|
849
849
|
return fillAndStroke;
|
|
850
850
|
} else if (color) {
|
|
851
851
|
return fillRule === FillRule.EvenOdd ? fillEvenOdd : fill;
|
|
852
|
-
} else if (borderColor && borderWidth) {
|
|
852
|
+
} else if (borderColor && borderWidth !== 0) {
|
|
853
853
|
return stroke;
|
|
854
854
|
}
|
|
855
855
|
return undefined;
|
|
@@ -8,13 +8,13 @@ export class IncrementalDocumentSnapshot implements DocumentSnapshot {
|
|
|
8
8
|
|
|
9
9
|
private deleted: PDFRef[] = [];
|
|
10
10
|
private lastObjectNumber: number;
|
|
11
|
-
private changedObjects: number
|
|
11
|
+
private changedObjects: Set<number>;
|
|
12
12
|
|
|
13
13
|
context: PDFContext;
|
|
14
14
|
|
|
15
15
|
constructor(
|
|
16
16
|
lastObjectNumber: number,
|
|
17
|
-
indirectObjects: number
|
|
17
|
+
indirectObjects: Set<number>,
|
|
18
18
|
pdfSize: number,
|
|
19
19
|
prevStartXRef: number,
|
|
20
20
|
context: PDFContext,
|
|
@@ -27,14 +27,8 @@ export class IncrementalDocumentSnapshot implements DocumentSnapshot {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
shouldSave(objectNumber: number): boolean {
|
|
30
|
-
if (objectNumber > this.lastObjectNumber)
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
if (this.changedObjects.includes(objectNumber)) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return false;
|
|
30
|
+
if (objectNumber > this.lastObjectNumber) return true;
|
|
31
|
+
return this.changedObjects.has(objectNumber);
|
|
38
32
|
}
|
|
39
33
|
|
|
40
34
|
markRefForSave(ref: PDFRef): void {
|
|
@@ -43,7 +37,7 @@ export class IncrementalDocumentSnapshot implements DocumentSnapshot {
|
|
|
43
37
|
|
|
44
38
|
markRefsForSave(refs: PDFRef[]): void {
|
|
45
39
|
refs.forEach((ref) => {
|
|
46
|
-
if (ref) this.changedObjects.
|
|
40
|
+
if (ref) this.changedObjects.add(ref.objectNumber);
|
|
47
41
|
});
|
|
48
42
|
}
|
|
49
43
|
|
|
@@ -29,7 +29,11 @@ const ChannelToColorSpace: { [idx: number]: ColorSpace | undefined } = {
|
|
|
29
29
|
*/
|
|
30
30
|
class JpegEmbedder {
|
|
31
31
|
static async for(imageData: Uint8Array) {
|
|
32
|
-
const dataView = new DataView(
|
|
32
|
+
const dataView = new DataView(
|
|
33
|
+
imageData.buffer,
|
|
34
|
+
imageData.byteOffset,
|
|
35
|
+
imageData.byteLength,
|
|
36
|
+
);
|
|
33
37
|
|
|
34
38
|
const soi = dataView.getUint16(0);
|
|
35
39
|
if (soi !== 0xffd8) throw new Error('SOI not found in JPEG');
|
|
@@ -62,7 +62,7 @@ class PDFString extends PDFObject {
|
|
|
62
62
|
else if (byte === CharCodes.f) pushByte(CharCodes.FormFeed);
|
|
63
63
|
else if (byte === CharCodes.LeftParen) pushByte(CharCodes.LeftParen);
|
|
64
64
|
else if (byte === CharCodes.RightParen) pushByte(CharCodes.RightParen);
|
|
65
|
-
else if (byte === CharCodes.
|
|
65
|
+
else if (byte === CharCodes.BackSlash) pushByte(CharCodes.BackSlash);
|
|
66
66
|
else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {
|
|
67
67
|
octal += char;
|
|
68
68
|
if (octal.length === 3 || !(nextChar >= '0' && nextChar <= '7')) {
|
|
@@ -27,7 +27,7 @@ import { IsDelimiter } from '../syntax/Delimiters';
|
|
|
27
27
|
import { Keywords } from '../syntax/Keywords';
|
|
28
28
|
import { IsDigit, IsNumeric } from '../syntax/Numeric';
|
|
29
29
|
import { IsWhitespace } from '../syntax/Whitespace';
|
|
30
|
-
import { charFromCode } from '../../utils';
|
|
30
|
+
import { arrayAsString, charFromCode } from '../../utils';
|
|
31
31
|
import { CipherTransformFactory } from '../crypto';
|
|
32
32
|
|
|
33
33
|
// TODO: Throw error if eof is reached before finishing object parse...
|
|
@@ -157,7 +157,10 @@ class PDFObjectParser extends BaseParser {
|
|
|
157
157
|
ref.objectNumber,
|
|
158
158
|
ref.generationNumber,
|
|
159
159
|
);
|
|
160
|
-
|
|
160
|
+
const decrypted = transformer.decryptBytes(
|
|
161
|
+
PDFString.of(actualValue).asBytes(),
|
|
162
|
+
);
|
|
163
|
+
actualValue = arrayAsString(decrypted);
|
|
161
164
|
}
|
|
162
165
|
// Remove the outer parens so they aren't part of the contents
|
|
163
166
|
return PDFString.of(actualValue);
|