@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.
Files changed (90) hide show
  1. package/README.md +5 -3
  2. package/cjs/api/PDFDocument.d.ts +16 -2
  3. package/cjs/api/PDFDocument.d.ts.map +1 -1
  4. package/cjs/api/PDFDocument.js +59 -5
  5. package/cjs/api/PDFDocument.js.map +1 -1
  6. package/cjs/api/PDFEmbeddedFile.d.ts +6 -0
  7. package/cjs/api/PDFEmbeddedFile.d.ts.map +1 -1
  8. package/cjs/api/PDFEmbeddedFile.js +10 -0
  9. package/cjs/api/PDFEmbeddedFile.js.map +1 -1
  10. package/cjs/api/PDFPage.js +1 -1
  11. package/cjs/api/operations.js +2 -2
  12. package/cjs/api/operations.js.map +1 -1
  13. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  14. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  15. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +3 -7
  16. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  17. package/cjs/core/embedders/JpegEmbedder.d.ts.map +1 -1
  18. package/cjs/core/embedders/JpegEmbedder.js +1 -1
  19. package/cjs/core/embedders/JpegEmbedder.js.map +1 -1
  20. package/cjs/core/objects/PDFString.js +1 -1
  21. package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -1
  22. package/cjs/core/parser/PDFObjectParser.js +2 -1
  23. package/cjs/core/parser/PDFObjectParser.js.map +1 -1
  24. package/cjs/core/structures/PDFCatalog.d.ts +3 -0
  25. package/cjs/core/structures/PDFCatalog.d.ts.map +1 -1
  26. package/cjs/core/structures/PDFCatalog.js +7 -0
  27. package/cjs/core/structures/PDFCatalog.js.map +1 -1
  28. package/cjs/core/writers/PDFWriter.d.ts +8 -3
  29. package/cjs/core/writers/PDFWriter.d.ts.map +1 -1
  30. package/cjs/core/writers/PDFWriter.js +30 -7
  31. package/cjs/core/writers/PDFWriter.js.map +1 -1
  32. package/dist/pdf-lib.esm.js +115 -25
  33. package/dist/pdf-lib.esm.js.map +1 -1
  34. package/dist/pdf-lib.esm.min.js +3 -3
  35. package/dist/pdf-lib.esm.min.js.map +1 -1
  36. package/dist/pdf-lib.js +115 -25
  37. package/dist/pdf-lib.js.map +1 -1
  38. package/dist/pdf-lib.min.js +3 -3
  39. package/dist/pdf-lib.min.js.map +1 -1
  40. package/es/api/PDFDocument.d.ts +16 -2
  41. package/es/api/PDFDocument.d.ts.map +1 -1
  42. package/es/api/PDFDocument.js +59 -5
  43. package/es/api/PDFDocument.js.map +1 -1
  44. package/es/api/PDFEmbeddedFile.d.ts +6 -0
  45. package/es/api/PDFEmbeddedFile.d.ts.map +1 -1
  46. package/es/api/PDFEmbeddedFile.js +10 -0
  47. package/es/api/PDFEmbeddedFile.js.map +1 -1
  48. package/es/api/PDFPage.js +1 -1
  49. package/es/api/operations.js +2 -2
  50. package/es/api/operations.js.map +1 -1
  51. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  52. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
  53. package/es/api/snapshot/IncrementalDocumentSnapshot.js +3 -7
  54. package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
  55. package/es/core/embedders/JpegEmbedder.d.ts.map +1 -1
  56. package/es/core/embedders/JpegEmbedder.js +1 -1
  57. package/es/core/embedders/JpegEmbedder.js.map +1 -1
  58. package/es/core/objects/PDFString.js +1 -1
  59. package/es/core/parser/PDFObjectParser.d.ts.map +1 -1
  60. package/es/core/parser/PDFObjectParser.js +3 -2
  61. package/es/core/parser/PDFObjectParser.js.map +1 -1
  62. package/es/core/structures/PDFCatalog.d.ts +3 -0
  63. package/es/core/structures/PDFCatalog.d.ts.map +1 -1
  64. package/es/core/structures/PDFCatalog.js +7 -0
  65. package/es/core/structures/PDFCatalog.js.map +1 -1
  66. package/es/core/writers/PDFWriter.d.ts +8 -3
  67. package/es/core/writers/PDFWriter.d.ts.map +1 -1
  68. package/es/core/writers/PDFWriter.js +30 -7
  69. package/es/core/writers/PDFWriter.js.map +1 -1
  70. package/package.json +4 -2
  71. package/src/api/PDFDocument.ts +75 -10
  72. package/src/api/PDFEmbeddedFile.ts +12 -0
  73. package/src/api/PDFPage.ts +1 -1
  74. package/src/api/operations.ts +2 -2
  75. package/src/api/snapshot/IncrementalDocumentSnapshot.ts +5 -11
  76. package/src/core/embedders/JpegEmbedder.ts +5 -1
  77. package/src/core/objects/PDFString.ts +1 -1
  78. package/src/core/parser/PDFObjectParser.ts +5 -2
  79. package/src/core/structures/PDFCatalog.ts +9 -0
  80. package/src/core/writers/PDFWriter.ts +32 -9
  81. package/ts3.4/cjs/api/PDFDocument.d.ts +16 -2
  82. package/ts3.4/cjs/api/PDFEmbeddedFile.d.ts +6 -0
  83. package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  84. package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +3 -0
  85. package/ts3.4/cjs/core/writers/PDFWriter.d.ts +11 -3
  86. package/ts3.4/es/api/PDFDocument.d.ts +16 -2
  87. package/ts3.4/es/api/PDFEmbeddedFile.d.ts +6 -0
  88. package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
  89. package/ts3.4/es/core/structures/PDFCatalog.d.ts +3 -0
  90. 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":"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"}
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.Backspace)
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;IA2C9C,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"}
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
- actualValue = transformer.decryptString(actualValue);
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":"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"}
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,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG1D,uEAAuE;AACvE,MAAM,eAAgB,SAAQ,UAAU;IAgBtC,YACE,UAAsB,EACtB,OAAmB,EACnB,UAAU,GAAG,KAAK,EAClB,aAAsC;QAEtC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,GAAY;QACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QAC1D,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAErD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAE/B,IACE,IAAI,KAAK,SAAS,CAAC,QAAQ;YAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,EAC9C;YACA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,IAAI,KAAK,SAAS,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,IAAI,KAAK,SAAS,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAES,gBAAgB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;aACvC;SACF;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,sFAAsF;IAC5E,cAAc,CAAC,GAAY;QACnC,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;YACxE,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAC1D,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,gBAAgB,CACrB,CAAC;YACF,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,KAAK,GAAG,GAAG,CAAC,MAAM,CAChB,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EACvE,EAAE,CACH,CAAC;SACH;QAED,OAAO,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,GAAY;QAChC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;YAE5B,kCAAkC;YAClC,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS;oBAAE,UAAU,IAAI,CAAC,CAAC;gBAClD,IAAI,IAAI,KAAK,SAAS,CAAC,UAAU;oBAAE,UAAU,IAAI,CAAC,CAAC;aACpD;YAED,0DAA0D;YAC1D,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE;gBAChC,SAAS,GAAG,CAAC,SAAS,CAAC;aACxB;iBAAM,IAAI,SAAS,EAAE;gBACpB,SAAS,GAAG,KAAK,CAAC;aACnB;YAED,yEAAyE;YACzE,IAAI,UAAU,KAAK,CAAC,EAAE;gBACpB,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvD,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE;oBAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAC1D,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,gBAAgB,CACrB,CAAC;oBACF,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CACxC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CACpC,CAAC;oBACF,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;iBACxC;gBACD,8DAA8D;gBAC9D,OAAO,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;aAClC;SACF;QAED,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAC9E,oEAAoE;IAC1D,SAAS;QACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;gBAAE,MAAM;YACnD,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACnB;QAED,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAES,UAAU,CAAC,GAAY;QAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,kBAAkB,EAAE;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,SAAS,CAAC,GAAY;QAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAY,IAAI,GAAG,EAAE,CAAC;QAEhC,OACE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,WAAW;YAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,WAAW,EACjD;YACA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1C,IAAI,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;YAClC,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1D;aAAM,IAAI,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;YACvC,OAAO,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3D;aAAM,IAAI,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;YACtC,OAAO,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3D;aAAM;YACL,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACvD;IACH,CAAC;IAES,iBAAiB,CAAC,GAAY;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,IACE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACvC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EACnC;YACA,OAAO,IAAI,CAAC;SACb;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,GAAW,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,IAAI,MAAM,YAAY,SAAS,EAAE;YAC/B,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aAC9C;SACF;aAAM;YACL,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;SAC9C;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CACxD,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,gBAAgB,CACrB,CAAC;YACF,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC7C;QAED,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAES,uBAAuB,CAAC,QAAkB;QAClD,uDAAuD;QACvD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAE9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YACzB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAE1B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACtC,UAAU,IAAI,CAAC,CAAC;aACjB;iBAAM,IACL,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EACrC;gBACA,UAAU,IAAI,CAAC,CAAC;aACjB;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aACnB;YAED,IAAI,UAAU,KAAK,CAAC;gBAAE,MAAM;SAC7B;QAED,IAAI,UAAU,KAAK,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEhE,OAAO,GAAG,CAAC;IACb,CAAC;;AApRM,wBAAQ,GAAG,CAChB,KAAiB,EACjB,OAAmB,EACnB,UAAoB,EACpB,EAAE,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE7D,6BAAa,GAAG,CACrB,UAAsB,EACtB,OAAmB,EACnB,UAAU,GAAG,KAAK,EAClB,EAAE,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AA6Q5D,eAAe,eAAe,CAAC"}
@@ -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;AAEjE,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,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"}
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":"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"}
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 an XRef stream object.
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} object PDFObject used to check if it is an XRef stream, when not 'incremental' saving
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, object: PDFObject): boolean;
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,GAChB,OAAO;IAeJ,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;IAoD7B,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"}
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 an XRef stream object.
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} object PDFObject used to check if it is an XRef stream, when not 'incremental' saving
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, object) {
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
- should = !(object instanceof PDFRawStream &&
47
- object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef'));
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, object)) {
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, object))
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":"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"}
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.7.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",
@@ -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 PDFAttachment = {
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({ fileName, fileSpec });
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(): PDFAttachment[] {
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 description = (
1066
- fileSpec.lookup(PDFName.of('Desc')) as PDFHexString
1067
- ).decodeText();
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(): PDFAttachment[] {
1086
- const attachments = this.embeddedFiles.map((file) => {
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
  }
@@ -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 ?? 0,
1278
+ borderWidth: options.borderWidth ?? 1,
1279
1279
  borderDashArray: options.borderDashArray ?? undefined,
1280
1280
  borderDashPhase: options.borderDashPhase ?? undefined,
1281
1281
  borderLineCap: options.borderLineCap ?? undefined,
@@ -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
- return true;
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.push(ref.objectNumber);
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(imageData.buffer);
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.Backspace) pushByte(CharCodes.BackSlash);
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
- actualValue = transformer.decryptString(actualValue);
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);