@syncfusion/ej2-pdf 1.0.23 → 23.1.36

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 (518) hide show
  1. package/.eslintrc.json +260 -0
  2. package/.gitleaksignore +1 -0
  3. package/CHANGELOG.md +17 -0
  4. package/README.md +17 -0
  5. package/dist/ej2-pdf.umd.min.js +4 -14
  6. package/dist/ej2-pdf.umd.min.js.map +1 -11
  7. package/dist/es6/ej2-pdf.es2015.js +48245 -0
  8. package/dist/es6/ej2-pdf.es2015.js.map +1 -0
  9. package/dist/es6/ej2-pdf.es5.js +50124 -0
  10. package/dist/es6/ej2-pdf.es5.js.map +1 -0
  11. package/dist/global/ej2-pdf.min.js +11 -0
  12. package/dist/global/ej2-pdf.min.js.map +1 -0
  13. package/dist/global/index.d.ts +14 -0
  14. package/index.js +4 -8
  15. package/license +10 -3
  16. package/package.json +58 -16
  17. package/pdf.d.ts +4 -0
  18. package/pdf.js +4 -0
  19. package/src/global.js +1 -0
  20. package/src/index.d.ts +45 -98
  21. package/src/index.js +45 -96
  22. package/src/pdf/core/annotations/annotation-collection.d.ts +289 -0
  23. package/src/pdf/core/annotations/annotation-collection.js +744 -0
  24. package/src/pdf/core/annotations/annotation.d.ts +5845 -0
  25. package/src/pdf/core/annotations/annotation.js +14195 -0
  26. package/src/pdf/core/annotations/index.d.ts +4 -0
  27. package/src/pdf/core/annotations/index.js +4 -0
  28. package/src/pdf/core/annotations/pdf-appearance.d.ts +102 -0
  29. package/src/pdf/core/annotations/pdf-appearance.js +124 -0
  30. package/src/pdf/core/annotations/pdf-paddings.d.ts +8 -0
  31. package/src/pdf/core/annotations/pdf-paddings.js +22 -0
  32. package/src/pdf/core/base-stream.d.ts +86 -0
  33. package/src/pdf/core/base-stream.js +332 -0
  34. package/src/pdf/core/content-parser.d.ts +38 -0
  35. package/src/pdf/core/content-parser.js +359 -0
  36. package/src/pdf/core/decode-stream.d.ts +21 -0
  37. package/src/pdf/core/decode-stream.js +120 -0
  38. package/src/pdf/core/decrypt-stream.d.ts +11 -0
  39. package/src/pdf/core/decrypt-stream.js +53 -0
  40. package/src/pdf/core/enumerator.d.ts +1668 -0
  41. package/src/pdf/core/enumerator.js +1717 -0
  42. package/src/pdf/core/flate-stream.d.ts +13 -0
  43. package/src/pdf/core/flate-stream.js +329 -0
  44. package/src/pdf/core/fonts/index.d.ts +7 -0
  45. package/{dist/es6/implementation/graphics → src/pdf/core}/fonts/index.js +3 -4
  46. package/src/pdf/core/fonts/pdf-font-metrics.d.ts +66 -0
  47. package/src/pdf/core/fonts/pdf-font-metrics.js +192 -0
  48. package/src/pdf/core/fonts/pdf-standard-font.d.ts +1023 -0
  49. package/src/pdf/core/fonts/pdf-standard-font.js +1682 -0
  50. package/src/pdf/core/fonts/pdf-string-format.d.ts +236 -0
  51. package/src/pdf/core/fonts/pdf-string-format.js +213 -0
  52. package/src/pdf/core/fonts/string-layouter.d.ts +68 -0
  53. package/src/pdf/core/fonts/string-layouter.js +437 -0
  54. package/src/pdf/core/fonts/ttf-reader.d.ts +167 -0
  55. package/src/pdf/core/fonts/ttf-reader.js +1150 -0
  56. package/src/pdf/core/fonts/ttf-table.d.ts +132 -0
  57. package/src/pdf/core/fonts/ttf-table.js +74 -0
  58. package/src/pdf/core/fonts/unicode-true-type-font.d.ts +50 -0
  59. package/src/pdf/core/fonts/unicode-true-type-font.js +289 -0
  60. package/src/pdf/core/form/field.d.ts +3011 -0
  61. package/src/pdf/core/form/field.js +6828 -0
  62. package/src/pdf/core/form/form.d.ts +279 -0
  63. package/src/pdf/core/form/form.js +782 -0
  64. package/src/pdf/core/form/index.d.ts +2 -0
  65. package/src/pdf/core/form/index.js +2 -0
  66. package/src/pdf/core/graphics/images/image-decoder.d.ts +31 -0
  67. package/src/pdf/core/graphics/images/image-decoder.js +130 -0
  68. package/src/{implementation → pdf/core}/graphics/images/index.d.ts +0 -5
  69. package/{dist/es6/implementation → src/pdf/core}/graphics/images/index.js +0 -1
  70. package/src/pdf/core/graphics/images/pdf-bitmap.d.ts +73 -0
  71. package/src/pdf/core/graphics/images/pdf-bitmap.js +68 -0
  72. package/src/pdf/core/graphics/images/pdf-image.d.ts +201 -0
  73. package/src/pdf/core/graphics/images/pdf-image.js +201 -0
  74. package/src/pdf/core/graphics/index.d.ts +10 -0
  75. package/src/pdf/core/graphics/index.js +10 -0
  76. package/src/pdf/core/graphics/pdf-graphics.d.ts +956 -0
  77. package/src/pdf/core/graphics/pdf-graphics.js +1860 -0
  78. package/src/pdf/core/graphics/pdf-path.d.ts +34 -0
  79. package/src/pdf/core/graphics/pdf-path.js +177 -0
  80. package/src/pdf/core/graphics/pdf-stream-writer.d.ts +56 -0
  81. package/src/pdf/core/graphics/pdf-stream-writer.js +231 -0
  82. package/src/pdf/core/graphics/pdf-template.d.ts +79 -0
  83. package/src/pdf/core/graphics/pdf-template.js +100 -0
  84. package/src/pdf/core/graphics/rightToLeft/bidirectional.d.ts +69 -0
  85. package/src/pdf/core/graphics/rightToLeft/bidirectional.js +831 -0
  86. package/src/pdf/core/graphics/rightToLeft/index.d.ts +3 -0
  87. package/src/pdf/core/graphics/rightToLeft/index.js +3 -0
  88. package/src/pdf/core/graphics/rightToLeft/text-renderer.d.ts +13 -0
  89. package/src/pdf/core/graphics/rightToLeft/text-renderer.js +116 -0
  90. package/src/pdf/core/graphics/rightToLeft/text-shape.d.ts +48 -0
  91. package/src/pdf/core/graphics/rightToLeft/text-shape.js +289 -0
  92. package/src/pdf/core/import-export/fdf-document.d.ts +37 -0
  93. package/src/pdf/core/import-export/fdf-document.js +667 -0
  94. package/src/pdf/core/import-export/index.d.ts +5 -0
  95. package/src/pdf/core/import-export/index.js +5 -0
  96. package/src/pdf/core/import-export/json-document.d.ts +47 -0
  97. package/src/pdf/core/import-export/json-document.js +1547 -0
  98. package/src/pdf/core/import-export/xfdf-document.d.ts +146 -0
  99. package/src/pdf/core/import-export/xfdf-document.js +2920 -0
  100. package/src/pdf/core/import-export/xml-document.d.ts +14 -0
  101. package/src/pdf/core/import-export/xml-document.js +166 -0
  102. package/src/pdf/core/import-export/xml-writer.d.ts +69 -0
  103. package/src/pdf/core/import-export/xml-writer.js +494 -0
  104. package/src/pdf/core/pdf-catalog.d.ts +18 -0
  105. package/src/pdf/core/pdf-catalog.js +166 -0
  106. package/src/pdf/core/pdf-cross-reference.d.ts +80 -0
  107. package/src/pdf/core/pdf-cross-reference.js +1049 -0
  108. package/src/pdf/core/pdf-document.d.ts +821 -0
  109. package/src/pdf/core/pdf-document.js +1022 -0
  110. package/src/pdf/core/pdf-file-structure.d.ts +54 -0
  111. package/src/pdf/core/pdf-file-structure.js +65 -0
  112. package/src/pdf/core/pdf-outline.d.ts +362 -0
  113. package/src/pdf/core/pdf-outline.js +860 -0
  114. package/src/pdf/core/pdf-page.d.ts +589 -0
  115. package/src/pdf/core/pdf-page.js +1049 -0
  116. package/src/pdf/core/pdf-parser.d.ts +62 -0
  117. package/src/pdf/core/pdf-parser.js +1035 -0
  118. package/src/pdf/core/pdf-primitives.d.ts +87 -0
  119. package/src/pdf/core/pdf-primitives.js +305 -0
  120. package/src/pdf/core/predictor-stream.d.ts +15 -0
  121. package/src/pdf/core/predictor-stream.js +214 -0
  122. package/src/pdf/core/security/encryptor.d.ts +140 -0
  123. package/src/pdf/core/security/encryptor.js +1616 -0
  124. package/src/pdf/core/security/index.d.ts +1 -0
  125. package/src/pdf/core/security/index.js +1 -0
  126. package/src/pdf/core/utils.d.ts +678 -0
  127. package/src/pdf/core/utils.js +3607 -0
  128. package/src/pdf/index.d.ts +44 -0
  129. package/src/pdf/index.js +44 -0
  130. package/tslint.json +111 -0
  131. package/ReadMe.md +0 -13
  132. package/dist/es6/implementation/actions/action.js +0 -44
  133. package/dist/es6/implementation/actions/index.js +0 -2
  134. package/dist/es6/implementation/actions/uri-action.js +0 -38
  135. package/dist/es6/implementation/annotations/action-link-annotation.js +0 -29
  136. package/dist/es6/implementation/annotations/annotation-collection.js +0 -93
  137. package/dist/es6/implementation/annotations/annotation.js +0 -156
  138. package/dist/es6/implementation/annotations/document-link-annotation.js +0 -48
  139. package/dist/es6/implementation/annotations/index.js +0 -7
  140. package/dist/es6/implementation/annotations/link-annotation.js +0 -31
  141. package/dist/es6/implementation/annotations/pdf-text-web-link.js +0 -178
  142. package/dist/es6/implementation/annotations/uri-annotation.js +0 -64
  143. package/dist/es6/implementation/collections/dictionary.js +0 -71
  144. package/dist/es6/implementation/collections/index.js +0 -3
  145. package/dist/es6/implementation/collections/object-object-pair/dictionary.js +0 -84
  146. package/dist/es6/implementation/collections/object-object-pair/index.js +0 -1
  147. package/dist/es6/implementation/collections/utils.js +0 -8
  148. package/dist/es6/implementation/document/automatic-fields/automatic-field-info-collection.js +0 -17
  149. package/dist/es6/implementation/document/automatic-fields/automatic-field-info.js +0 -68
  150. package/dist/es6/implementation/document/automatic-fields/automatic-field.js +0 -145
  151. package/dist/es6/implementation/document/automatic-fields/composite-field.js +0 -61
  152. package/dist/es6/implementation/document/automatic-fields/index.js +0 -7
  153. package/dist/es6/implementation/document/automatic-fields/multiple-value-field.js +0 -36
  154. package/dist/es6/implementation/document/automatic-fields/page-count-field.js +0 -53
  155. package/dist/es6/implementation/document/automatic-fields/pdf-numbers-convertor.js +0 -91
  156. package/dist/es6/implementation/document/automatic-fields/pdf-page-number-field.js +0 -56
  157. package/dist/es6/implementation/document/automatic-fields/pdf-template-value-pair.js +0 -34
  158. package/dist/es6/implementation/document/automatic-fields/single-value-field.js +0 -47
  159. package/dist/es6/implementation/document/index.js +0 -11
  160. package/dist/es6/implementation/document/pdf-catalog.js +0 -38
  161. package/dist/es6/implementation/document/pdf-document-base.js +0 -71
  162. package/dist/es6/implementation/document/pdf-document-template.js +0 -204
  163. package/dist/es6/implementation/document/pdf-document.js +0 -175
  164. package/dist/es6/implementation/drawing/index.js +0 -1
  165. package/dist/es6/implementation/drawing/pdf-drawing.js +0 -80
  166. package/dist/es6/implementation/general/enum.js +0 -6
  167. package/dist/es6/implementation/general/index.js +0 -3
  168. package/dist/es6/implementation/general/pdf-cache-collection.js +0 -24
  169. package/dist/es6/implementation/general/pdf-collection.js +0 -26
  170. package/dist/es6/implementation/general/pdf-destination.js +0 -107
  171. package/dist/es6/implementation/graphics/brushes/index.js +0 -2
  172. package/dist/es6/implementation/graphics/brushes/pdf-brush.js +0 -6
  173. package/dist/es6/implementation/graphics/brushes/pdf-solid-brush.js +0 -53
  174. package/dist/es6/implementation/graphics/constants.js +0 -11
  175. package/dist/es6/implementation/graphics/enum.js +0 -100
  176. package/dist/es6/implementation/graphics/figures/base/element-layouter.js +0 -154
  177. package/dist/es6/implementation/graphics/figures/base/graphics-element.js +0 -18
  178. package/dist/es6/implementation/graphics/figures/base/index.js +0 -3
  179. package/dist/es6/implementation/graphics/figures/base/pdf-shape-element.js +0 -32
  180. package/dist/es6/implementation/graphics/figures/base/shape-layouter.js +0 -55
  181. package/dist/es6/implementation/graphics/figures/base/text-layouter.js +0 -123
  182. package/dist/es6/implementation/graphics/figures/enum.js +0 -11
  183. package/dist/es6/implementation/graphics/figures/index.js +0 -5
  184. package/dist/es6/implementation/graphics/figures/layout-element.js +0 -41
  185. package/dist/es6/implementation/graphics/figures/pdf-template.js +0 -110
  186. package/dist/es6/implementation/graphics/figures/text-element.js +0 -298
  187. package/dist/es6/implementation/graphics/fonts/enum.js +0 -45
  188. package/dist/es6/implementation/graphics/fonts/pdf-font-metrics.js +0 -122
  189. package/dist/es6/implementation/graphics/fonts/pdf-font.js +0 -159
  190. package/dist/es6/implementation/graphics/fonts/pdf-standard-font-metrics-factory.js +0 -357
  191. package/dist/es6/implementation/graphics/fonts/pdf-standard-font.js +0 -124
  192. package/dist/es6/implementation/graphics/fonts/pdf-string-format.js +0 -239
  193. package/dist/es6/implementation/graphics/fonts/string-layouter.js +0 -335
  194. package/dist/es6/implementation/graphics/fonts/string-tokenizer.js +0 -162
  195. package/dist/es6/implementation/graphics/images/byte-array.js +0 -82
  196. package/dist/es6/implementation/graphics/images/image-decoder.js +0 -167
  197. package/dist/es6/implementation/graphics/images/pdf-bitmap.js +0 -41
  198. package/dist/es6/implementation/graphics/images/pdf-image.js +0 -68
  199. package/dist/es6/implementation/graphics/index.js +0 -20
  200. package/dist/es6/implementation/graphics/pdf-color.js +0 -205
  201. package/dist/es6/implementation/graphics/pdf-graphics.js +0 -1034
  202. package/dist/es6/implementation/graphics/pdf-margins.js +0 -75
  203. package/dist/es6/implementation/graphics/pdf-pen.js +0 -180
  204. package/dist/es6/implementation/graphics/pdf-resources.js +0 -223
  205. package/dist/es6/implementation/graphics/pdf-transformation-matrix.js +0 -134
  206. package/dist/es6/implementation/graphics/pdf-transparency.js +0 -22
  207. package/dist/es6/implementation/graphics/unit-convertor.js +0 -33
  208. package/dist/es6/implementation/index.js +0 -85
  209. package/dist/es6/implementation/input-output/cross-table.js +0 -6
  210. package/dist/es6/implementation/input-output/enum.js +0 -5
  211. package/dist/es6/implementation/input-output/index.js +0 -8
  212. package/dist/es6/implementation/input-output/pdf-cross-table.js +0 -346
  213. package/dist/es6/implementation/input-output/pdf-dictionary-properties.js +0 -60
  214. package/dist/es6/implementation/input-output/pdf-main-object-collection.js +0 -115
  215. package/dist/es6/implementation/input-output/pdf-operators.js +0 -75
  216. package/dist/es6/implementation/input-output/pdf-stream-writer.js +0 -364
  217. package/dist/es6/implementation/input-output/pdf-writer.js +0 -44
  218. package/dist/es6/implementation/pages/enum.js +0 -51
  219. package/dist/es6/implementation/pages/index.js +0 -13
  220. package/dist/es6/implementation/pages/page-added-event-arguments.js +0 -19
  221. package/dist/es6/implementation/pages/pdf-document-page-collection.js +0 -120
  222. package/dist/es6/implementation/pages/pdf-page-base.js +0 -104
  223. package/dist/es6/implementation/pages/pdf-page-layer-collection.js +0 -115
  224. package/dist/es6/implementation/pages/pdf-page-layer.js +0 -160
  225. package/dist/es6/implementation/pages/pdf-page-settings.js +0 -126
  226. package/dist/es6/implementation/pages/pdf-page-size.js +0 -36
  227. package/dist/es6/implementation/pages/pdf-page-template-element.js +0 -510
  228. package/dist/es6/implementation/pages/pdf-page.js +0 -130
  229. package/dist/es6/implementation/pages/pdf-section-collection.js +0 -95
  230. package/dist/es6/implementation/pages/pdf-section-page-collection.js +0 -30
  231. package/dist/es6/implementation/pages/pdf-section-templates.js +0 -71
  232. package/dist/es6/implementation/pages/pdf-section.js +0 -388
  233. package/dist/es6/implementation/primitives/index.js +0 -8
  234. package/dist/es6/implementation/primitives/pdf-array.js +0 -199
  235. package/dist/es6/implementation/primitives/pdf-boolean.js +0 -66
  236. package/dist/es6/implementation/primitives/pdf-dictionary.js +0 -220
  237. package/dist/es6/implementation/primitives/pdf-name.js +0 -102
  238. package/dist/es6/implementation/primitives/pdf-number.js +0 -94
  239. package/dist/es6/implementation/primitives/pdf-reference.js +0 -195
  240. package/dist/es6/implementation/primitives/pdf-stream.js +0 -149
  241. package/dist/es6/implementation/primitives/pdf-string.js +0 -143
  242. package/dist/es6/implementation/structured-elements/grid/index.js +0 -1
  243. package/dist/es6/implementation/structured-elements/grid/pdf-grid-cell.js +0 -512
  244. package/dist/es6/implementation/structured-elements/grid/pdf-grid-column.js +0 -125
  245. package/dist/es6/implementation/structured-elements/grid/pdf-grid-row.js +0 -244
  246. package/dist/es6/implementation/structured-elements/grid/pdf-grid.js +0 -989
  247. package/dist/es6/implementation/structured-elements/grid/styles/index.js +0 -2
  248. package/dist/es6/implementation/structured-elements/grid/styles/pdf-borders.js +0 -145
  249. package/dist/es6/implementation/structured-elements/grid/styles/style.js +0 -267
  250. package/dist/es6/implementation/structured-elements/index.js +0 -1
  251. package/dist/es6/implementation/structured-elements/tables/light-tables/enum.js +0 -5
  252. package/dist/es6/index.js +0 -89
  253. package/dist/es6/interfaces/i-pdf-cache.js +0 -1
  254. package/dist/es6/interfaces/i-pdf-changable.js +0 -1
  255. package/dist/es6/interfaces/i-pdf-primitives.js +0 -1
  256. package/dist/es6/interfaces/i-pdf-wrapper.js +0 -1
  257. package/dist/es6/interfaces/i-pdf-writer.js +0 -1
  258. package/dist/es6/interfaces/index.js +0 -1
  259. package/dist/global/ej2-pdf-export.js +0 -15979
  260. package/implementation.d.ts +0 -4
  261. package/implementation.js +0 -8
  262. package/interfaces.d.ts +0 -4
  263. package/interfaces.js +0 -4
  264. package/src/implementation/actions/action.d.ts +0 -50
  265. package/src/implementation/actions/action.js +0 -44
  266. package/src/implementation/actions/index.d.ts +0 -6
  267. package/src/implementation/actions/index.js +0 -9
  268. package/src/implementation/actions/uri-action.d.ts +0 -33
  269. package/src/implementation/actions/uri-action.js +0 -39
  270. package/src/implementation/annotations/action-link-annotation.d.ts +0 -30
  271. package/src/implementation/annotations/action-link-annotation.js +0 -32
  272. package/src/implementation/annotations/annotation-collection.d.ts +0 -77
  273. package/src/implementation/annotations/annotation-collection.js +0 -91
  274. package/src/implementation/annotations/annotation.d.ts +0 -152
  275. package/src/implementation/annotations/annotation.js +0 -146
  276. package/src/implementation/annotations/document-link-annotation.d.ts +0 -89
  277. package/src/implementation/annotations/document-link-annotation.js +0 -51
  278. package/src/implementation/annotations/index.d.ts +0 -11
  279. package/src/implementation/annotations/index.js +0 -14
  280. package/src/implementation/annotations/link-annotation.d.ts +0 -23
  281. package/src/implementation/annotations/link-annotation.js +0 -33
  282. package/src/implementation/annotations/pdf-text-web-link.d.ts +0 -118
  283. package/src/implementation/annotations/pdf-text-web-link.js +0 -173
  284. package/src/implementation/annotations/uri-annotation.d.ts +0 -48
  285. package/src/implementation/annotations/uri-annotation.js +0 -65
  286. package/src/implementation/collections/dictionary.d.ts +0 -76
  287. package/src/implementation/collections/dictionary.js +0 -74
  288. package/src/implementation/collections/index.d.ts +0 -7
  289. package/src/implementation/collections/index.js +0 -10
  290. package/src/implementation/collections/object-object-pair/dictionary.d.ts +0 -62
  291. package/src/implementation/collections/object-object-pair/dictionary.js +0 -88
  292. package/src/implementation/collections/object-object-pair/index.d.ts +0 -5
  293. package/src/implementation/collections/object-object-pair/index.js +0 -8
  294. package/src/implementation/collections/utils.d.ts +0 -27
  295. package/src/implementation/collections/utils.js +0 -13
  296. package/src/implementation/document/automatic-fields/automatic-field-info-collection.d.ts +0 -31
  297. package/src/implementation/document/automatic-fields/automatic-field-info-collection.js +0 -21
  298. package/src/implementation/document/automatic-fields/automatic-field-info.d.ts +0 -67
  299. package/src/implementation/document/automatic-fields/automatic-field-info.js +0 -70
  300. package/src/implementation/document/automatic-fields/automatic-field.d.ts +0 -41
  301. package/src/implementation/document/automatic-fields/automatic-field.js +0 -143
  302. package/src/implementation/document/automatic-fields/composite-field.d.ts +0 -46
  303. package/src/implementation/document/automatic-fields/composite-field.js +0 -64
  304. package/src/implementation/document/automatic-fields/index.d.ts +0 -11
  305. package/src/implementation/document/automatic-fields/index.js +0 -14
  306. package/src/implementation/document/automatic-fields/multiple-value-field.d.ts +0 -18
  307. package/src/implementation/document/automatic-fields/multiple-value-field.js +0 -35
  308. package/src/implementation/document/automatic-fields/page-count-field.d.ts +0 -44
  309. package/src/implementation/document/automatic-fields/page-count-field.js +0 -53
  310. package/src/implementation/document/automatic-fields/pdf-numbers-convertor.d.ts +0 -53
  311. package/src/implementation/document/automatic-fields/pdf-numbers-convertor.js +0 -94
  312. package/src/implementation/document/automatic-fields/pdf-page-number-field.d.ts +0 -51
  313. package/src/implementation/document/automatic-fields/pdf-page-number-field.js +0 -56
  314. package/src/implementation/document/automatic-fields/pdf-template-value-pair.d.ts +0 -38
  315. package/src/implementation/document/automatic-fields/pdf-template-value-pair.js +0 -38
  316. package/src/implementation/document/automatic-fields/single-value-field.d.ts +0 -15
  317. package/src/implementation/document/automatic-fields/single-value-field.js +0 -46
  318. package/src/implementation/document/index.d.ts +0 -15
  319. package/src/implementation/document/index.js +0 -18
  320. package/src/implementation/document/pdf-catalog.d.ts +0 -32
  321. package/src/implementation/document/pdf-catalog.js +0 -38
  322. package/src/implementation/document/pdf-document-base.d.ts +0 -117
  323. package/src/implementation/document/pdf-document-base.js +0 -72
  324. package/src/implementation/document/pdf-document-template.d.ts +0 -166
  325. package/src/implementation/document/pdf-document-template.js +0 -207
  326. package/src/implementation/document/pdf-document.d.ts +0 -206
  327. package/src/implementation/document/pdf-document.js +0 -166
  328. package/src/implementation/drawing/index.d.ts +0 -5
  329. package/src/implementation/drawing/index.js +0 -8
  330. package/src/implementation/drawing/pdf-drawing.d.ts +0 -93
  331. package/src/implementation/drawing/pdf-drawing.js +0 -84
  332. package/src/implementation/general/enum.d.ts +0 -21
  333. package/src/implementation/general/enum.js +0 -10
  334. package/src/implementation/general/index.d.ts +0 -7
  335. package/src/implementation/general/index.js +0 -10
  336. package/src/implementation/general/pdf-cache-collection.d.ts +0 -33
  337. package/src/implementation/general/pdf-cache-collection.js +0 -27
  338. package/src/implementation/general/pdf-collection.d.ts +0 -26
  339. package/src/implementation/general/pdf-collection.js +0 -30
  340. package/src/implementation/general/pdf-destination.d.ts +0 -103
  341. package/src/implementation/general/pdf-destination.js +0 -103
  342. package/src/implementation/graphics/brushes/index.d.ts +0 -6
  343. package/src/implementation/graphics/brushes/index.js +0 -9
  344. package/src/implementation/graphics/brushes/pdf-brush.d.ts +0 -55
  345. package/src/implementation/graphics/brushes/pdf-brush.js +0 -10
  346. package/src/implementation/graphics/brushes/pdf-solid-brush.d.ts +0 -77
  347. package/src/implementation/graphics/brushes/pdf-solid-brush.js +0 -54
  348. package/src/implementation/graphics/constants.d.ts +0 -31
  349. package/src/implementation/graphics/constants.js +0 -15
  350. package/src/implementation/graphics/enum.d.ts +0 -392
  351. package/src/implementation/graphics/enum.js +0 -104
  352. package/src/implementation/graphics/figures/base/element-layouter.d.ts +0 -160
  353. package/src/implementation/graphics/figures/base/element-layouter.js +0 -156
  354. package/src/implementation/graphics/figures/base/graphics-element.d.ts +0 -16
  355. package/src/implementation/graphics/figures/base/graphics-element.js +0 -22
  356. package/src/implementation/graphics/figures/base/index.d.ts +0 -7
  357. package/src/implementation/graphics/figures/base/index.js +0 -10
  358. package/src/implementation/graphics/figures/base/pdf-shape-element.d.ts +0 -28
  359. package/src/implementation/graphics/figures/base/pdf-shape-element.js +0 -34
  360. package/src/implementation/graphics/figures/base/shape-layouter.d.ts +0 -80
  361. package/src/implementation/graphics/figures/base/shape-layouter.js +0 -57
  362. package/src/implementation/graphics/figures/base/text-layouter.d.ts +0 -107
  363. package/src/implementation/graphics/figures/base/text-layouter.js +0 -121
  364. package/src/implementation/graphics/figures/enum.d.ts +0 -37
  365. package/src/implementation/graphics/figures/enum.js +0 -15
  366. package/src/implementation/graphics/figures/index.d.ts +0 -9
  367. package/src/implementation/graphics/figures/index.js +0 -12
  368. package/src/implementation/graphics/figures/layout-element.d.ts +0 -57
  369. package/src/implementation/graphics/figures/layout-element.js +0 -43
  370. package/src/implementation/graphics/figures/pdf-template.d.ts +0 -113
  371. package/src/implementation/graphics/figures/pdf-template.js +0 -106
  372. package/src/implementation/graphics/figures/text-element.d.ts +0 -213
  373. package/src/implementation/graphics/figures/text-element.js +0 -289
  374. package/src/implementation/graphics/fonts/enum.d.ts +0 -179
  375. package/src/implementation/graphics/fonts/enum.js +0 -49
  376. package/src/implementation/graphics/fonts/index.d.ts +0 -12
  377. package/src/implementation/graphics/fonts/index.js +0 -15
  378. package/src/implementation/graphics/fonts/pdf-font-metrics.d.ts +0 -160
  379. package/src/implementation/graphics/fonts/pdf-font-metrics.js +0 -123
  380. package/src/implementation/graphics/fonts/pdf-font.d.ts +0 -187
  381. package/src/implementation/graphics/fonts/pdf-font.js +0 -158
  382. package/src/implementation/graphics/fonts/pdf-standard-font-metrics-factory.d.ts +0 -301
  383. package/src/implementation/graphics/fonts/pdf-standard-font-metrics-factory.js +0 -359
  384. package/src/implementation/graphics/fonts/pdf-standard-font.d.ts +0 -143
  385. package/src/implementation/graphics/fonts/pdf-standard-font.js +0 -121
  386. package/src/implementation/graphics/fonts/pdf-string-format.d.ts +0 -319
  387. package/src/implementation/graphics/fonts/pdf-string-format.js +0 -241
  388. package/src/implementation/graphics/fonts/string-layouter.d.ts +0 -255
  389. package/src/implementation/graphics/fonts/string-layouter.js +0 -336
  390. package/src/implementation/graphics/fonts/string-tokenizer.d.ts +0 -107
  391. package/src/implementation/graphics/fonts/string-tokenizer.js +0 -166
  392. package/src/implementation/graphics/images/byte-array.d.ts +0 -68
  393. package/src/implementation/graphics/images/byte-array.js +0 -86
  394. package/src/implementation/graphics/images/image-decoder.d.ts +0 -227
  395. package/src/implementation/graphics/images/image-decoder.js +0 -164
  396. package/src/implementation/graphics/images/index.js +0 -11
  397. package/src/implementation/graphics/images/pdf-bitmap.d.ts +0 -90
  398. package/src/implementation/graphics/images/pdf-bitmap.js +0 -41
  399. package/src/implementation/graphics/images/pdf-image.d.ts +0 -88
  400. package/src/implementation/graphics/images/pdf-image.js +0 -69
  401. package/src/implementation/graphics/index.d.ts +0 -24
  402. package/src/implementation/graphics/index.js +0 -27
  403. package/src/implementation/graphics/pdf-color.d.ts +0 -170
  404. package/src/implementation/graphics/pdf-color.js +0 -204
  405. package/src/implementation/graphics/pdf-graphics.d.ts +0 -1085
  406. package/src/implementation/graphics/pdf-graphics.js +0 -1017
  407. package/src/implementation/graphics/pdf-margins.d.ts +0 -82
  408. package/src/implementation/graphics/pdf-margins.js +0 -79
  409. package/src/implementation/graphics/pdf-pen.d.ts +0 -237
  410. package/src/implementation/graphics/pdf-pen.js +0 -181
  411. package/src/implementation/graphics/pdf-resources.d.ts +0 -147
  412. package/src/implementation/graphics/pdf-resources.js +0 -215
  413. package/src/implementation/graphics/pdf-transformation-matrix.d.ts +0 -143
  414. package/src/implementation/graphics/pdf-transformation-matrix.js +0 -136
  415. package/src/implementation/graphics/pdf-transparency.d.ts +0 -34
  416. package/src/implementation/graphics/pdf-transparency.js +0 -22
  417. package/src/implementation/graphics/unit-convertor.d.ts +0 -72
  418. package/src/implementation/graphics/unit-convertor.js +0 -37
  419. package/src/implementation/index.d.ts +0 -89
  420. package/src/implementation/index.js +0 -92
  421. package/src/implementation/input-output/cross-table.d.ts +0 -21
  422. package/src/implementation/input-output/cross-table.js +0 -10
  423. package/src/implementation/input-output/enum.d.ts +0 -16
  424. package/src/implementation/input-output/enum.js +0 -9
  425. package/src/implementation/input-output/index.d.ts +0 -12
  426. package/src/implementation/input-output/index.js +0 -15
  427. package/src/implementation/input-output/pdf-cross-table.d.ts +0 -249
  428. package/src/implementation/input-output/pdf-cross-table.js +0 -340
  429. package/src/implementation/input-output/pdf-dictionary-properties.d.ts +0 -283
  430. package/src/implementation/input-output/pdf-dictionary-properties.js +0 -64
  431. package/src/implementation/input-output/pdf-main-object-collection.d.ts +0 -120
  432. package/src/implementation/input-output/pdf-main-object-collection.js +0 -117
  433. package/src/implementation/input-output/pdf-operators.d.ts +0 -352
  434. package/src/implementation/input-output/pdf-operators.js +0 -79
  435. package/src/implementation/input-output/pdf-stream-writer.d.ts +0 -314
  436. package/src/implementation/input-output/pdf-stream-writer.js +0 -363
  437. package/src/implementation/input-output/pdf-writer.d.ts +0 -68
  438. package/src/implementation/input-output/pdf-writer.js +0 -48
  439. package/src/implementation/pages/enum.d.ts +0 -201
  440. package/src/implementation/pages/enum.js +0 -55
  441. package/src/implementation/pages/index.d.ts +0 -17
  442. package/src/implementation/pages/index.js +0 -20
  443. package/src/implementation/pages/page-added-event-arguments.d.ts +0 -30
  444. package/src/implementation/pages/page-added-event-arguments.js +0 -23
  445. package/src/implementation/pages/pdf-document-page-collection.d.ts +0 -92
  446. package/src/implementation/pages/pdf-document-page-collection.js +0 -121
  447. package/src/implementation/pages/pdf-page-base.d.ts +0 -121
  448. package/src/implementation/pages/pdf-page-base.js +0 -104
  449. package/src/implementation/pages/pdf-page-layer-collection.d.ts +0 -99
  450. package/src/implementation/pages/pdf-page-layer-collection.js +0 -113
  451. package/src/implementation/pages/pdf-page-layer.d.ts +0 -160
  452. package/src/implementation/pages/pdf-page-layer.js +0 -159
  453. package/src/implementation/pages/pdf-page-settings.d.ts +0 -111
  454. package/src/implementation/pages/pdf-page-settings.js +0 -126
  455. package/src/implementation/pages/pdf-page-size.d.ts +0 -159
  456. package/src/implementation/pages/pdf-page-size.js +0 -39
  457. package/src/implementation/pages/pdf-page-template-element.d.ts +0 -230
  458. package/src/implementation/pages/pdf-page-template-element.js +0 -509
  459. package/src/implementation/pages/pdf-page.d.ts +0 -153
  460. package/src/implementation/pages/pdf-page.js +0 -127
  461. package/src/implementation/pages/pdf-section-collection.d.ts +0 -109
  462. package/src/implementation/pages/pdf-section-collection.js +0 -91
  463. package/src/implementation/pages/pdf-section-page-collection.d.ts +0 -41
  464. package/src/implementation/pages/pdf-section-page-collection.js +0 -34
  465. package/src/implementation/pages/pdf-section-templates.d.ts +0 -64
  466. package/src/implementation/pages/pdf-section-templates.js +0 -74
  467. package/src/implementation/pages/pdf-section.d.ts +0 -319
  468. package/src/implementation/pages/pdf-section.js +0 -379
  469. package/src/implementation/primitives/index.d.ts +0 -12
  470. package/src/implementation/primitives/index.js +0 -15
  471. package/src/implementation/primitives/pdf-array.d.ts +0 -186
  472. package/src/implementation/primitives/pdf-array.js +0 -201
  473. package/src/implementation/primitives/pdf-boolean.d.ts +0 -84
  474. package/src/implementation/primitives/pdf-boolean.js +0 -70
  475. package/src/implementation/primitives/pdf-dictionary.d.ts +0 -311
  476. package/src/implementation/primitives/pdf-dictionary.js +0 -220
  477. package/src/implementation/primitives/pdf-name.d.ts +0 -121
  478. package/src/implementation/primitives/pdf-name.js +0 -106
  479. package/src/implementation/primitives/pdf-number.d.ts +0 -104
  480. package/src/implementation/primitives/pdf-number.js +0 -98
  481. package/src/implementation/primitives/pdf-reference.d.ts +0 -222
  482. package/src/implementation/primitives/pdf-reference.js +0 -192
  483. package/src/implementation/primitives/pdf-stream.d.ts +0 -111
  484. package/src/implementation/primitives/pdf-stream.js +0 -146
  485. package/src/implementation/primitives/pdf-string.d.ts +0 -212
  486. package/src/implementation/primitives/pdf-string.js +0 -147
  487. package/src/implementation/structured-elements/grid/index.d.ts +0 -0
  488. package/src/implementation/structured-elements/grid/index.js +0 -1
  489. package/src/implementation/structured-elements/grid/pdf-grid-cell.d.ts +0 -248
  490. package/src/implementation/structured-elements/grid/pdf-grid-cell.js +0 -504
  491. package/src/implementation/structured-elements/grid/pdf-grid-column.d.ts +0 -108
  492. package/src/implementation/structured-elements/grid/pdf-grid-column.js +0 -127
  493. package/src/implementation/structured-elements/grid/pdf-grid-row.d.ts +0 -207
  494. package/src/implementation/structured-elements/grid/pdf-grid-row.js +0 -246
  495. package/src/implementation/structured-elements/grid/pdf-grid.d.ts +0 -678
  496. package/src/implementation/structured-elements/grid/pdf-grid.js +0 -982
  497. package/src/implementation/structured-elements/grid/styles/index.d.ts +0 -5
  498. package/src/implementation/structured-elements/grid/styles/index.js +0 -9
  499. package/src/implementation/structured-elements/grid/styles/pdf-borders.d.ts +0 -126
  500. package/src/implementation/structured-elements/grid/styles/pdf-borders.js +0 -146
  501. package/src/implementation/structured-elements/grid/styles/style.d.ts +0 -250
  502. package/src/implementation/structured-elements/grid/styles/style.js +0 -269
  503. package/src/implementation/structured-elements/index.d.ts +0 -0
  504. package/src/implementation/structured-elements/index.js +0 -1
  505. package/src/implementation/structured-elements/tables/light-tables/enum.d.ts +0 -16
  506. package/src/implementation/structured-elements/tables/light-tables/enum.js +0 -9
  507. package/src/interfaces/i-pdf-cache.d.ts +0 -23
  508. package/src/interfaces/i-pdf-cache.js +0 -4
  509. package/src/interfaces/i-pdf-changable.d.ts +0 -17
  510. package/src/interfaces/i-pdf-changable.js +0 -4
  511. package/src/interfaces/i-pdf-primitives.d.ts +0 -45
  512. package/src/interfaces/i-pdf-primitives.js +0 -4
  513. package/src/interfaces/i-pdf-wrapper.d.ts +0 -13
  514. package/src/interfaces/i-pdf-wrapper.js +0 -4
  515. package/src/interfaces/i-pdf-writer.d.ts +0 -29
  516. package/src/interfaces/i-pdf-writer.js +0 -4
  517. package/src/interfaces/index.d.ts +0 -9
  518. package/src/interfaces/index.js +0 -4
@@ -0,0 +1,1049 @@
1
+ import { _PdfDictionary, _PdfReference, _PdfName } from './pdf-primitives';
2
+ import { _getInheritableProperty } from './utils';
3
+ import { PdfAnnotationCollection } from './annotations/annotation-collection';
4
+ import { PdfGraphics } from './graphics/pdf-graphics';
5
+ import { _PdfBaseStream, _PdfContentStream } from './base-stream';
6
+ import { PdfRotationAngle, PdfDestinationMode, PdfFormFieldsTabOrder, PdfPageOrientation } from './enumerator';
7
+ /**
8
+ * Represents a page loaded from the PDF document.
9
+ * ```typescript
10
+ * // Load an existing PDF document
11
+ * let document: PdfDocument = new PdfDocument(data);
12
+ * // Access first page
13
+ * let page: PdfPage = document.getPage(0);
14
+ * // Save the document
15
+ * document.save('output.pdf');
16
+ * // Destroy the document
17
+ * document.destroy();
18
+ * ```
19
+ */
20
+ var PdfPage = /** @class */ (function () {
21
+ /**
22
+ * Represents a loaded page of the PDF document.
23
+ *
24
+ * @private
25
+ * @param {_PdfCrossReference} crossReference Cross reference object.
26
+ * @param {number} pageIndex page index.
27
+ * @param {_PdfDictionary} dictionary page Dictionary.
28
+ * @param {_PdfReference} reference page reference.
29
+ */
30
+ function PdfPage(crossReference, pageIndex, dictionary, reference) {
31
+ this._isAnnotationParsed = false;
32
+ this._pageIndex = pageIndex;
33
+ this._pageDictionary = dictionary;
34
+ this._crossReference = crossReference;
35
+ this._ref = reference;
36
+ }
37
+ Object.defineProperty(PdfPage.prototype, "annotations", {
38
+ /**
39
+ * Gets the collection of the page's annotations (Read only).
40
+ *
41
+ * @returns {PdfAnnotationCollection} Annotation collection.
42
+ *
43
+ * ```typescript
44
+ * // Load an existing PDF document
45
+ * let document: PdfDocument = new PdfDocument(data);
46
+ * // Access first page
47
+ * let page: PdfPage = document.getPage(0);
48
+ * // Gets the annotation collection
49
+ * let annotations: PdfAnnotationCollection = page.annotations;
50
+ * // Save the document
51
+ * document.save('output.pdf');
52
+ * // Destroy the document
53
+ * document.destroy();
54
+ * ```
55
+ */
56
+ get: function () {
57
+ if (typeof this._annotations === 'undefined') {
58
+ if (this._pageDictionary.has('Annots')) {
59
+ var annots = this._getProperty('Annots');
60
+ if (annots && Array.isArray(annots)) {
61
+ var widgets_1 = this._crossReference._document.form._parseWidgetReferences();
62
+ if (widgets_1 && widgets_1.length > 0) {
63
+ var validAnnotations_1 = [];
64
+ annots.forEach(function (entry) {
65
+ if (widgets_1.indexOf(entry) === -1) {
66
+ validAnnotations_1.push(entry);
67
+ }
68
+ });
69
+ this._annotations = new PdfAnnotationCollection(validAnnotations_1, this._crossReference, this);
70
+ }
71
+ else {
72
+ this._annotations = new PdfAnnotationCollection(annots, this._crossReference, this);
73
+ }
74
+ }
75
+ }
76
+ if (typeof this._annotations === 'undefined') {
77
+ this._annotations = new PdfAnnotationCollection([], this._crossReference, this);
78
+ }
79
+ }
80
+ return this._annotations;
81
+ },
82
+ enumerable: true,
83
+ configurable: true
84
+ });
85
+ Object.defineProperty(PdfPage.prototype, "size", {
86
+ /**
87
+ * Gets the size of the page (Read only).
88
+ *
89
+ * @returns {number[]} Page width and height as number array.
90
+ *
91
+ * ```typescript
92
+ * // Load an existing PDF document
93
+ * let document: PdfDocument = new PdfDocument(data);
94
+ * // Access first page
95
+ * let page: PdfPage = document.getPage(0);
96
+ * // Gets the width and height of the PDF page as number array
97
+ * let size: number[] = page.size;
98
+ * // Save the document
99
+ * document.save('output.pdf');
100
+ * // Destroy the document
101
+ * document.destroy();
102
+ * ```
103
+ */
104
+ get: function () {
105
+ if (typeof this._size === 'undefined') {
106
+ var mBox = this.mediaBox;
107
+ var width = 0;
108
+ var height = 0;
109
+ if (mBox) {
110
+ width = mBox[2] - mBox[0];
111
+ height = mBox[3] !== 0 ? mBox[3] - mBox[1] : mBox[1];
112
+ }
113
+ if (height < 0) {
114
+ height = -height;
115
+ }
116
+ if (width < 0) {
117
+ width = -width;
118
+ }
119
+ this._size = [width, height];
120
+ }
121
+ return this._size;
122
+ },
123
+ enumerable: true,
124
+ configurable: true
125
+ });
126
+ Object.defineProperty(PdfPage.prototype, "rotation", {
127
+ /**
128
+ * Gets the rotation angle of the page (Read only).
129
+ *
130
+ * @returns {PdfRotationAngle} Page rotation angle.
131
+ *
132
+ * ```typescript
133
+ * // Load an existing PDF document
134
+ * let document: PdfDocument = new PdfDocument(data);
135
+ * // Access first page
136
+ * let page: PdfPage = document.getPage(0);
137
+ * // Gets the rotation angle of the page
138
+ * let rotation: PdfRotationAngle = page.rotation;
139
+ * // Save the document
140
+ * document.save('output.pdf');
141
+ * // Destroy the document
142
+ * document.destroy();
143
+ * ```
144
+ */
145
+ get: function () {
146
+ var angle = 0;
147
+ if (typeof this._rotation === 'undefined') {
148
+ angle = _getInheritableProperty(this._pageDictionary, 'Rotate', false, true, 'Parent');
149
+ }
150
+ if (angle < 0) {
151
+ angle += 360;
152
+ }
153
+ return (typeof angle !== 'undefined') ? ((angle / 90) % 4) : PdfRotationAngle.angle0;
154
+ },
155
+ enumerable: true,
156
+ configurable: true
157
+ });
158
+ Object.defineProperty(PdfPage.prototype, "tabOrder", {
159
+ /**
160
+ * Gets the tab order of a PDF form field.
161
+ *
162
+ * @returns {PdfFormFieldsTabOrder} tab order.
163
+ * ```typescript
164
+ * // Load an existing PDF document
165
+ * let document: PdfDocument = new PdfDocument(data);
166
+ * // Access first page
167
+ * let page: PdfPage = document.getPage(0);
168
+ * // Gets the tab order of a PDF form field.
169
+ * let tabOrder: PdfFormFieldsTabOrder = page.tabOrder;
170
+ * // Save the document
171
+ * document.save('output.pdf');
172
+ * // Destroy the document
173
+ * document.destroy();
174
+ * ```
175
+ */
176
+ get: function () {
177
+ return this._obtainTabOrder();
178
+ },
179
+ /**
180
+ * Sets the tab order of a PDF form field.
181
+ *
182
+ * @param {PdfFormFieldsTabOrder} value tab order.
183
+ * ```typescript
184
+ * // Load an existing PDF document
185
+ * let document: PdfDocument = new PdfDocument(data);
186
+ * // Access first page
187
+ * let page: PdfPage = document.getPage(0);
188
+ * // Sets the tab order of a PDF form field.
189
+ * page.tabOrder = PdfFormFieldsTabOrder.row;
190
+ * // Save the document
191
+ * document.save('output.pdf');
192
+ * // Destroy the document
193
+ * document.destroy();
194
+ * ```
195
+ */
196
+ set: function (value) {
197
+ this._tabOrder = value;
198
+ var tabs = '';
199
+ if (this._tabOrder !== PdfFormFieldsTabOrder.none) {
200
+ if (this._tabOrder === PdfFormFieldsTabOrder.row) {
201
+ tabs = 'R';
202
+ }
203
+ else if (this._tabOrder === PdfFormFieldsTabOrder.column) {
204
+ tabs = 'C';
205
+ }
206
+ else if (this._tabOrder === PdfFormFieldsTabOrder.structure) {
207
+ tabs = 'S';
208
+ }
209
+ }
210
+ this._pageDictionary.update('Tabs', _PdfName.get(tabs));
211
+ },
212
+ enumerable: true,
213
+ configurable: true
214
+ });
215
+ Object.defineProperty(PdfPage.prototype, "cropBox", {
216
+ /**
217
+ * Gets the bounds that define the area intended for display or printing in the PDF viewer application (Read only).
218
+ *
219
+ * @returns {number[]} Page size as number array.
220
+ *
221
+ * ```typescript
222
+ * // Load an existing PDF document
223
+ * let document: PdfDocument = new PdfDocument(data);
224
+ * // Access first page
225
+ * let page: PdfPage = document.getPage(0);
226
+ * // Gets the cropBox of the PDF page as number array
227
+ * let cropBox: number[] = page.cropBox;
228
+ * // Save the document
229
+ * document.save('output.pdf');
230
+ * // Destroy the document
231
+ * document.destroy();
232
+ * ```
233
+ */
234
+ get: function () {
235
+ if (typeof this._cBox === 'undefined') {
236
+ this._cBox = _getInheritableProperty(this._pageDictionary, 'CropBox', false, true, 'Parent', 'P');
237
+ }
238
+ if (typeof this._cBox === 'undefined') {
239
+ this._cBox = [0, 0, 0, 0];
240
+ }
241
+ return this._cBox;
242
+ },
243
+ enumerable: true,
244
+ configurable: true
245
+ });
246
+ Object.defineProperty(PdfPage.prototype, "mediaBox", {
247
+ /**
248
+ * Gets the size that specify the width and height of the page (Read only).
249
+ *
250
+ * @returns {number[]} Page size as number array.
251
+ *
252
+ * ```typescript
253
+ * // Load an existing PDF document
254
+ * let document: PdfDocument = new PdfDocument(data);
255
+ * // Access first page
256
+ * let page: PdfPage = document.getPage(0);
257
+ * // Gets the mediaBox of the PDF page as number array
258
+ * let mediaBox: number[] = page.mediaBox;
259
+ * // Save the document
260
+ * document.save('output.pdf');
261
+ * // Destroy the document
262
+ * document.destroy();
263
+ * ```
264
+ */
265
+ get: function () {
266
+ if (typeof this._mBox === 'undefined') {
267
+ this._mBox = _getInheritableProperty(this._pageDictionary, 'MediaBox', false, true, 'Parent', 'P');
268
+ }
269
+ if (typeof this._mBox === 'undefined') {
270
+ this._mBox = [0, 0, 0, 0];
271
+ }
272
+ return this._mBox;
273
+ },
274
+ enumerable: true,
275
+ configurable: true
276
+ });
277
+ Object.defineProperty(PdfPage.prototype, "orientation", {
278
+ /**
279
+ * Gets the orientation of the page (Read only).
280
+ *
281
+ * @returns {PdfPageOrientation} Page orientation.
282
+ *
283
+ * ```typescript
284
+ * // Load an existing PDF document
285
+ * let document: PdfDocument = new PdfDocument(data);
286
+ * // Access first page
287
+ * let page: PdfPage = document.getPage(0);
288
+ * // Gets the orientation of the PDF page
289
+ * let orientation: number[] = page.orientation;
290
+ * // Save the document
291
+ * document.save('output.pdf');
292
+ * // Destroy the document
293
+ * document.destroy();
294
+ * ```
295
+ */
296
+ get: function () {
297
+ if (typeof this._orientation === 'undefined') {
298
+ if (typeof this.size !== 'undefined') {
299
+ var size = this.size;
300
+ if (size[0] > size[1]) {
301
+ this._orientation = PdfPageOrientation.landscape;
302
+ }
303
+ else {
304
+ this._orientation = PdfPageOrientation.portrait;
305
+ }
306
+ }
307
+ }
308
+ return this._orientation;
309
+ },
310
+ enumerable: true,
311
+ configurable: true
312
+ });
313
+ Object.defineProperty(PdfPage.prototype, "_origin", {
314
+ get: function () {
315
+ if (typeof this._o === 'undefined' || (this._o[0] === 0 && this._o[1] === 0)) {
316
+ this._o = [this.mediaBox[0], this._mBox[1]];
317
+ }
318
+ return this._o;
319
+ },
320
+ enumerable: true,
321
+ configurable: true
322
+ });
323
+ Object.defineProperty(PdfPage.prototype, "graphics", {
324
+ /**
325
+ * Gets the graphics of the page (Read only).
326
+ *
327
+ * @returns {PdfGraphics} Page graphics.
328
+ *
329
+ * ```typescript
330
+ * // Load an existing PDF document
331
+ * let document: PdfDocument = new PdfDocument(data, password);
332
+ * // Access first page
333
+ * let page: PdfPage = document.getPage(0);
334
+ * // Gets the graphics of the PDF page
335
+ * let graphics: PdfGraphics = page.graphics;
336
+ * //Create a new pen.
337
+ * let pen: PdfPen = new PdfPen([0, 0, 0], 1);
338
+ * //Draw line on the page graphics.
339
+ * graphics.drawLine(pen, 10, 10, 100, 100);
340
+ * // Save the document
341
+ * document.save('output.pdf');
342
+ * // Destroy the document
343
+ * document.destroy();
344
+ * ```
345
+ */
346
+ get: function () {
347
+ if (typeof this._g === 'undefined' || this._needInitializeGraphics) {
348
+ this._parseGraphics();
349
+ }
350
+ return this._g;
351
+ },
352
+ enumerable: true,
353
+ configurable: true
354
+ });
355
+ PdfPage.prototype._addWidget = function (reference) {
356
+ var annots;
357
+ if (this._pageDictionary.has('Annots')) {
358
+ annots = this._getProperty('Annots');
359
+ }
360
+ if (annots && Array.isArray(annots)) {
361
+ annots.push(reference);
362
+ }
363
+ else {
364
+ this._pageDictionary.update('Annots', [reference]);
365
+ }
366
+ this._pageDictionary._updated = true;
367
+ };
368
+ PdfPage.prototype._getProperty = function (key, getArray) {
369
+ if (getArray === void 0) { getArray = false; }
370
+ var value = _getInheritableProperty(this._pageDictionary, key, getArray, false); // eslint-disable-line
371
+ if (!Array.isArray(value)) {
372
+ return value;
373
+ }
374
+ if (value.length === 1 || !(value[0] instanceof _PdfDictionary)) {
375
+ return value[0];
376
+ }
377
+ return _PdfDictionary.merge(this._crossReference, value);
378
+ };
379
+ PdfPage.prototype._parseGraphics = function () {
380
+ this._loadContents();
381
+ var saveStream = new _PdfContentStream([32, 113, 32, 10]);
382
+ var saveReference = this._crossReference._getNextReference();
383
+ this._crossReference._cacheMap.set(saveReference, saveStream);
384
+ this._contents.splice(0, 0, saveReference);
385
+ var restoreStream = new _PdfContentStream([32, 81, 32, 10]);
386
+ var restoreReference = this._crossReference._getNextReference();
387
+ this._crossReference._cacheMap.set(restoreReference, restoreStream);
388
+ this._contents.push(restoreReference);
389
+ var contentStream = new _PdfContentStream([]);
390
+ var contentReference = this._crossReference._getNextReference();
391
+ this._crossReference._cacheMap.set(contentReference, contentStream);
392
+ this._contents.push(contentReference);
393
+ this._pageDictionary.set('Contents', this._contents);
394
+ this._pageDictionary._updated = true;
395
+ this._initializeGraphics(contentStream);
396
+ };
397
+ PdfPage.prototype._loadContents = function () {
398
+ var contents = this._pageDictionary.getRaw('Contents'); // eslint-disable-line
399
+ var ref;
400
+ if (contents !== null && typeof contents !== 'undefined' && contents instanceof _PdfReference) {
401
+ ref = contents;
402
+ contents = this._crossReference._fetch(ref);
403
+ }
404
+ if (contents && contents instanceof _PdfBaseStream) {
405
+ this._contents = [ref];
406
+ }
407
+ else if (contents && Array.isArray(contents)) {
408
+ this._contents = contents;
409
+ }
410
+ else {
411
+ this._contents = [];
412
+ }
413
+ };
414
+ PdfPage.prototype._initializeGraphics = function (stream) {
415
+ var isInvalidCase = false;
416
+ var llx = 0;
417
+ var lly = 0;
418
+ var urx = 0;
419
+ var ury = 0;
420
+ var size = this.size;
421
+ var mbox = this.mediaBox;
422
+ if (mbox && mbox.length >= 4) {
423
+ llx = mbox[0];
424
+ lly = mbox[1];
425
+ urx = mbox[2];
426
+ ury = mbox[3];
427
+ }
428
+ var cbox;
429
+ if (this._pageDictionary.has('CropBox')) {
430
+ cbox = this.cropBox;
431
+ if (cbox && cbox.length >= 4) {
432
+ var cx = cbox[0];
433
+ var cy = cbox[1];
434
+ var crx = cbox[2];
435
+ var cry = cbox[3];
436
+ var isValid = (cx < 0 || cy < 0 || crx < 0 || cry < 0) &&
437
+ (Math.floor(Math.abs(cy)) === Math.floor(Math.abs(size[1]))) &&
438
+ (Math.floor(Math.abs(cx)) === Math.floor(Math.abs(size[0])));
439
+ if (isValid) {
440
+ this._g = new PdfGraphics([Math.max(cx, crx), Math.max(cy, cry)], stream, this._crossReference, this);
441
+ }
442
+ else {
443
+ this._g = new PdfGraphics(size, stream, this._crossReference, this);
444
+ this._g._cropBox = cbox;
445
+ }
446
+ }
447
+ else {
448
+ this._g = new PdfGraphics(size, stream, this._crossReference, this);
449
+ }
450
+ }
451
+ else if ((llx < 0 || lly < 0 || urx < 0 || ury < 0) &&
452
+ (Math.floor(Math.abs(lly)) === Math.floor(Math.abs(size[1]))) &&
453
+ (Math.floor(Math.abs(urx)) === Math.floor(Math.abs(size[0])))) {
454
+ var width = Math.max(llx, urx);
455
+ var height = Math.max(lly, ury);
456
+ if (width <= 0 || height <= 0) {
457
+ isInvalidCase = true;
458
+ if (llx < 0) {
459
+ llx = -llx;
460
+ }
461
+ if (lly < 0) {
462
+ lly = -lly;
463
+ }
464
+ if (urx < 0) {
465
+ urx = -urx;
466
+ }
467
+ if (ury < 0) {
468
+ ury = -ury;
469
+ }
470
+ width = Math.max(llx, urx);
471
+ height = Math.max(lly, ury);
472
+ }
473
+ this._g = new PdfGraphics([width, height], stream, this._crossReference, this);
474
+ }
475
+ else {
476
+ this._g = new PdfGraphics(size, stream, this._crossReference, this);
477
+ }
478
+ if (this._pageDictionary.has('MediaBox')) {
479
+ this._g._mediaBoxUpperRightBound = isInvalidCase ? -lly : ury;
480
+ }
481
+ this._graphicsState = this._g.save();
482
+ var origin = this._origin;
483
+ if ((origin[0] >= 0 && origin[1] >= 0) || Math.sign(origin[0]) !== Math.sign(origin[1])) {
484
+ this._g._initializeCoordinates();
485
+ }
486
+ else {
487
+ this._g._initializeCoordinates(this);
488
+ }
489
+ //Need to code - set transparency group
490
+ var rotation = this.rotation;
491
+ if (!Number.isNaN(rotation) && (rotation !== PdfRotationAngle.angle0 || this._pageDictionary.has('Rotate'))) {
492
+ var rotate = void 0;
493
+ if (this._pageDictionary.has('Rotate')) {
494
+ rotate = this._pageDictionary.get('Rotate');
495
+ }
496
+ else {
497
+ rotate = rotation * 90;
498
+ }
499
+ var clip = this._g._clipBounds;
500
+ if (rotate === 90) {
501
+ this._g.translateTransform(0, size[1]);
502
+ this._g.rotateTransform(-90);
503
+ this._g._clipBounds = [clip[0], clip[1], size[0], size[1]];
504
+ }
505
+ else if (rotate === 180) {
506
+ this._g.translateTransform(size[0], size[1]);
507
+ this._g.rotateTransform(-180);
508
+ }
509
+ else if (rotate === 270) {
510
+ this._g.translateTransform(size[0], 0);
511
+ this._g.rotateTransform(-270);
512
+ this._g._clipBounds = [clip[0], clip[1], size[1], size[0]];
513
+ }
514
+ }
515
+ this._needInitializeGraphics = false;
516
+ };
517
+ PdfPage.prototype._fetchResources = function () {
518
+ if (typeof this._resourceObject === 'undefined') {
519
+ if (this._pageDictionary && this._pageDictionary.has('Resources')) {
520
+ var obj = this._pageDictionary.getRaw('Resources'); // eslint-disable-line
521
+ if (obj !== null && typeof obj !== 'undefined' && obj instanceof _PdfReference) {
522
+ this._hasResourceReference = true;
523
+ this._resourceObject = this._crossReference._fetch(obj);
524
+ }
525
+ else if (obj instanceof _PdfDictionary) {
526
+ this._resourceObject = obj;
527
+ }
528
+ }
529
+ else {
530
+ this._resourceObject = new _PdfDictionary(this._crossReference);
531
+ this._pageDictionary.update('Resources', this._resourceObject);
532
+ }
533
+ }
534
+ return this._resourceObject;
535
+ };
536
+ PdfPage.prototype._getCropOrMediaBox = function () {
537
+ var box;
538
+ if (this._pageDictionary.has('CropBox')) {
539
+ box = this._pageDictionary.getArray('CropBox');
540
+ }
541
+ else if (this._pageDictionary.has('MediaBox')) {
542
+ box = this._pageDictionary.getArray('MediaBox');
543
+ }
544
+ return box;
545
+ };
546
+ PdfPage.prototype._beginSave = function () {
547
+ if (typeof this._graphicsState !== 'undefined') {
548
+ this.graphics.restore(this._graphicsState);
549
+ this._graphicsState = null;
550
+ this._needInitializeGraphics = true;
551
+ }
552
+ };
553
+ PdfPage.prototype._destroy = function () {
554
+ this._pageDictionary = undefined;
555
+ this._size = undefined;
556
+ this._mBox = undefined;
557
+ this._cBox = undefined;
558
+ this._o = undefined;
559
+ this._g = undefined;
560
+ this._graphicsState = undefined;
561
+ this._contents = undefined;
562
+ };
563
+ PdfPage.prototype._obtainTabOrder = function () {
564
+ if (this._pageDictionary.has('Tabs')) {
565
+ var tabOrder = this._pageDictionary.get('Tabs');
566
+ if (tabOrder === _PdfName.get('R')) {
567
+ this._tabOrder = PdfFormFieldsTabOrder.row;
568
+ }
569
+ else if (tabOrder === _PdfName.get('C')) {
570
+ this._tabOrder = PdfFormFieldsTabOrder.column;
571
+ }
572
+ else if (tabOrder === _PdfName.get('S')) {
573
+ this._tabOrder = PdfFormFieldsTabOrder.structure;
574
+ }
575
+ else if (tabOrder === _PdfName.get('W')) {
576
+ this._tabOrder = PdfFormFieldsTabOrder.widget;
577
+ }
578
+ }
579
+ if (this._tabOrder === null || typeof this._tabOrder === 'undefined') {
580
+ this._tabOrder = PdfFormFieldsTabOrder.none;
581
+ }
582
+ return this._tabOrder;
583
+ };
584
+ PdfPage.prototype._removeAnnotation = function (reference) {
585
+ if (this._pageDictionary.has('Annots')) {
586
+ var annots = this._getProperty('Annots');
587
+ if (annots && Array.isArray(annots)) {
588
+ var index = annots.indexOf(reference);
589
+ if (index >= 0) {
590
+ annots.splice(index, 1);
591
+ }
592
+ this._pageDictionary.set('Annots', annots);
593
+ this._pageDictionary._updated = true;
594
+ }
595
+ }
596
+ };
597
+ return PdfPage;
598
+ }());
599
+ export { PdfPage };
600
+ /**
601
+ * `PdfDestination` class represents the PDF destination.
602
+ * ```typescript
603
+ * // Load an existing PDF document
604
+ * let document: PdfDocument = new PdfDocument(data, password);
605
+ * // Access the annotation at index 0
606
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
607
+ * // Initializes a new instance of the `PdfDestination` class.
608
+ * let destination: PdfDestination = new PdfDestination();
609
+ * // Sets the zoom factor.
610
+ * destination.zoom = 20;
611
+ * // Sets the page where the destination is situated.
612
+ * destination.page = page;
613
+ * // Sets the mode of the destination.
614
+ * destination.mode = PdfDestinationMode.fitToPage;
615
+ * // Sets the location of the destination.
616
+ * destination.location = [20, 20];
617
+ * // Sets the bounds of the destination.
618
+ * destination.destinationBounds = [20, 20, 100, 50];
619
+ * // Sets destination to document link annotation.
620
+ * annotation.destination = destination;
621
+ * // Save the document
622
+ * document.save('output.pdf');
623
+ * // Destroy the document
624
+ * document.destroy();
625
+ * ```
626
+ */
627
+ var PdfDestination = /** @class */ (function () {
628
+ function PdfDestination(page, location) {
629
+ this._location = [0, 0];
630
+ this._destinationMode = PdfDestinationMode.location;
631
+ this._zoom = 0;
632
+ this._isValid = true;
633
+ this._index = 0;
634
+ this._destinationBounds = [0, 0, 0, 0];
635
+ this._array = Array(); // eslint-disable-line
636
+ if (typeof page !== 'undefined' && page !== null) {
637
+ if (page.rotation === PdfRotationAngle.angle180) {
638
+ this._location = [page.graphics._size[0], this._location[1]];
639
+ }
640
+ else if (page.rotation === PdfRotationAngle.angle90) {
641
+ this._location = [0, 0];
642
+ }
643
+ else if (page.rotation === PdfRotationAngle.angle270) {
644
+ this._location = [page.graphics._size[0], 0];
645
+ }
646
+ else {
647
+ this._location = [0, this._location[1]];
648
+ }
649
+ this._page = page;
650
+ this._index = page._pageIndex;
651
+ }
652
+ if (typeof location !== 'undefined' && location.length === 2) {
653
+ this._location = location;
654
+ }
655
+ if (typeof location !== 'undefined' && location.length === 4) {
656
+ this._location = [location[0], location[1]];
657
+ this._destinationBounds = location;
658
+ }
659
+ }
660
+ Object.defineProperty(PdfDestination.prototype, "zoom", {
661
+ /**
662
+ * Gets the zoom factor.
663
+ *
664
+ * @returns {number} zoom.
665
+ * ```typescript
666
+ * // Load an existing PDF document
667
+ * let document: PdfDocument = new PdfDocument(data, password);
668
+ * //Access the annotation at index 0
669
+ * let annot: PdfDocumentLinkAnnotation = page.annotations.at(0) as PdfDocumentLinkAnnotation;
670
+ * // Gets the zoom factor of the destination.
671
+ * let zoom: number = annot.destination.zoom;
672
+ * // Save the document
673
+ * document.save('output.pdf');
674
+ * // Destroy the document
675
+ * document.destroy();
676
+ * ```
677
+ */
678
+ get: function () {
679
+ return this._zoom;
680
+ },
681
+ /**
682
+ * Sets the zoom factor.
683
+ *
684
+ * @param {number} value zoom.
685
+ * ```typescript
686
+ * // Load an existing PDF document
687
+ * let document: PdfDocument = new PdfDocument(data, password);
688
+ * // Access the annotation at index 0
689
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
690
+ * // Initializes a new instance of the `PdfDestination` class.
691
+ * let destination: PdfDestination = new PdfDestination();
692
+ * // Sets the zoom factor.
693
+ * destination.zoom = 20;
694
+ * // Sets the page where the destination is situated.
695
+ * destination.page = page;
696
+ * // Sets the mode of the destination.
697
+ * destination.mode = PdfDestinationMode.fitToPage;
698
+ * // Sets the location of the destination.
699
+ * destination.location = [20, 20];
700
+ * // Sets the bounds of the destination.
701
+ * destination.destinationBounds = [20, 20, 100, 50];
702
+ * // Sets destination to document link annotation.
703
+ * annotation.destination = destination;
704
+ * // Save the document
705
+ * document.save('output.pdf');
706
+ * // Destroy the document
707
+ * document.destroy();
708
+ * ```
709
+ */
710
+ set: function (value) {
711
+ if (value !== this._zoom) {
712
+ this._zoom = value;
713
+ this._initializePrimitive();
714
+ }
715
+ },
716
+ enumerable: true,
717
+ configurable: true
718
+ });
719
+ Object.defineProperty(PdfDestination.prototype, "page", {
720
+ /**
721
+ * Gets the page where the destination is situated.
722
+ *
723
+ * @returns {PdfPage} page.
724
+ * ```typescript
725
+ * // Load an existing PDF document
726
+ * let document: PdfDocument = new PdfDocument(data, password);
727
+ * //Access the annotation at index 0
728
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
729
+ * // Gets the page of the destination.
730
+ * let page: PdfPage = annot.destination.page;
731
+ * // Save the document
732
+ * document.save('output.pdf');
733
+ * // Destroy the document
734
+ * document.destroy();
735
+ * ```
736
+ */
737
+ get: function () {
738
+ return this._page;
739
+ },
740
+ /**
741
+ * Sets the page where the destination is situated.
742
+ *
743
+ * @param {PdfPage} value page.
744
+ * ```typescript
745
+ * // Load an existing PDF document
746
+ * let document: PdfDocument = new PdfDocument(data, password);
747
+ * // Access the annotation at index 0
748
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
749
+ * // Initializes a new instance of the `PdfDestination` class.
750
+ * let destination: PdfDestination = new PdfDestination();
751
+ * // Sets the zoom factor.
752
+ * destination.zoom = 20;
753
+ * // Sets the page where the destination is situated.
754
+ * destination.page = page;
755
+ * // Sets the mode of the destination.
756
+ * destination.mode = PdfDestinationMode.fitToPage;
757
+ * // Sets the location of the destination.
758
+ * destination.location = [20, 20];
759
+ * // Sets the bounds of the destination.
760
+ * destination.destinationBounds = [20, 20, 100, 50];
761
+ * // Sets destination to document link annotation.
762
+ * annotation.destination = destination;
763
+ * // Save the document
764
+ * document.save('output.pdf');
765
+ * // Destroy the document
766
+ * document.destroy();
767
+ * ```
768
+ */
769
+ set: function (value) {
770
+ if (value !== this._page) {
771
+ this._page = value;
772
+ this._initializePrimitive();
773
+ this._index = value._pageIndex;
774
+ }
775
+ },
776
+ enumerable: true,
777
+ configurable: true
778
+ });
779
+ Object.defineProperty(PdfDestination.prototype, "pageIndex", {
780
+ /**
781
+ * Gets the page index of bookmark destination (Read only).
782
+ *
783
+ * @returns {number} index.
784
+ * ```typescript
785
+ * // Load an existing PDF document
786
+ * let document: PdfDocument = new PdfDocument(data, password);
787
+ * //Access the annotation at index 0
788
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
789
+ * // Gets the page index of the destination.
790
+ * let pageIndex: number = annot.destination.pageIndex;
791
+ * // Save the document
792
+ * document.save('output.pdf');
793
+ * // Destroy the document
794
+ * document.destroy();
795
+ * ```
796
+ */
797
+ get: function () {
798
+ return this._index;
799
+ },
800
+ enumerable: true,
801
+ configurable: true
802
+ });
803
+ Object.defineProperty(PdfDestination.prototype, "mode", {
804
+ /**
805
+ * Gets the mode of the destination.
806
+ *
807
+ * @returns {PdfDestinationMode} page.
808
+ * ```typescript
809
+ * // Load an existing PDF document
810
+ * let document: PdfDocument = new PdfDocument(data, password);
811
+ * //Access the annotation at index 0
812
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
813
+ * // Gets the mode of the destination.
814
+ * let mode: PdfDestinationMode = annot.destination.mode;
815
+ * // Save the document
816
+ * document.save('output.pdf');
817
+ * // Destroy the document
818
+ * document.destroy();
819
+ * ```
820
+ */
821
+ get: function () {
822
+ return this._destinationMode;
823
+ },
824
+ /**
825
+ * Sets the mode of the destination.
826
+ *
827
+ * @param {PdfDestinationMode} value page.
828
+ * ```typescript
829
+ * // Load an existing PDF document
830
+ * let document: PdfDocument = new PdfDocument(data, password);
831
+ * // Access the annotation at index 0
832
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
833
+ * // Initializes a new instance of the `PdfDestination` class.
834
+ * let destination: PdfDestination = new PdfDestination();
835
+ * // Sets the zoom factor.
836
+ * destination.zoom = 20;
837
+ * // Sets the page where the destination is situated.
838
+ * destination.page = page;
839
+ * // Sets the mode of the destination.
840
+ * destination.mode = PdfDestinationMode.fitToPage;
841
+ * // Sets the location of the destination.
842
+ * destination.location = [20, 20];
843
+ * // Sets the bounds of the destination.
844
+ * destination.destinationBounds = [20, 20, 100, 50];
845
+ * // Sets destination to document link annotation.
846
+ * annotation.destination = destination;
847
+ * // Save the document
848
+ * document.save('output.pdf');
849
+ * // Destroy the document
850
+ * document.destroy();
851
+ * ```
852
+ */
853
+ set: function (value) {
854
+ if (value !== this._destinationMode) {
855
+ this._destinationMode = value;
856
+ this._initializePrimitive();
857
+ }
858
+ },
859
+ enumerable: true,
860
+ configurable: true
861
+ });
862
+ Object.defineProperty(PdfDestination.prototype, "location", {
863
+ /**
864
+ * Gets the location of the destination.
865
+ *
866
+ * @returns {number[]} page.
867
+ * ```typescript
868
+ * // Load an existing PDF document
869
+ * let document: PdfDocument = new PdfDocument(data, password);
870
+ * // Access the annotation at index 0
871
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
872
+ * // Gets the location of the destination.
873
+ * let location: number[] = annot.destination.location;
874
+ * // Save the document
875
+ * document.save('output.pdf');
876
+ * // Destroy the document
877
+ * document.destroy();
878
+ * ```
879
+ */
880
+ get: function () {
881
+ return this._location;
882
+ },
883
+ /**
884
+ * Sets the location of the destination.
885
+ *
886
+ * @param {number[]} value page.
887
+ * ```typescript
888
+ * // Load an existing PDF document
889
+ * let document: PdfDocument = new PdfDocument(data, password);
890
+ * // Access the annotation at index 0
891
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
892
+ * // Initializes a new instance of the `PdfDestination` class.
893
+ * let destination: PdfDestination = new PdfDestination();
894
+ * // Sets the zoom factor.
895
+ * destination.zoom = 20;
896
+ * // Sets the page where the destination is situated.
897
+ * destination.page = page;
898
+ * // Sets the mode of the destination.
899
+ * destination.mode = PdfDestinationMode.fitToPage;
900
+ * // Sets the location of the destination.
901
+ * destination.location = [20, 20];
902
+ * // Sets the bounds of the destination.
903
+ * destination.destinationBounds = [20, 20, 100, 50];
904
+ * // Sets destination to document link annotation.
905
+ * annotation.destination = destination;
906
+ * // Save the document
907
+ * document.save('output.pdf');
908
+ * // Destroy the document
909
+ * document.destroy();
910
+ * ```
911
+ */
912
+ set: function (value) {
913
+ if (value !== this._location) {
914
+ this._location = value;
915
+ this._initializePrimitive();
916
+ }
917
+ },
918
+ enumerable: true,
919
+ configurable: true
920
+ });
921
+ Object.defineProperty(PdfDestination.prototype, "destinationBounds", {
922
+ /**
923
+ * Gets the bounds of the destination.
924
+ *
925
+ * @returns {number[]} bounds.
926
+ * ```typescript
927
+ * // Load an existing PDF document
928
+ * let document: PdfDocument = new PdfDocument(data, password);
929
+ * // Access the annotation at index 0
930
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
931
+ * // Gets the bounds of the destination.
932
+ * let destinationBounds: number[] = annot.destination.destinationBounds;
933
+ * // Save the document
934
+ * document.save('output.pdf');
935
+ * // Destroy the document
936
+ * document.destroy();
937
+ * ```
938
+ */
939
+ get: function () {
940
+ return this._destinationBounds;
941
+ },
942
+ /**
943
+ * Sets the bounds of the destination.
944
+ *
945
+ * @param {number[]} value bounds.
946
+ * ```typescript
947
+ * // Load an existing PDF document
948
+ * let document: PdfDocument = new PdfDocument(data, password);
949
+ * // Access the annotation at index 0
950
+ * let annotation: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
951
+ * // Initializes a new instance of the `PdfDestination` class.
952
+ * let destination: PdfDestination = new PdfDestination();
953
+ * // Sets the zoom factor.
954
+ * destination.zoom = 20;
955
+ * // Sets the page where the destination is situated.
956
+ * destination.page = page;
957
+ * // Sets the mode of the destination.
958
+ * destination.mode = PdfDestinationMode.fitToPage;
959
+ * // Sets the location of the destination.
960
+ * destination.location = [20, 20];
961
+ * // Sets the bounds of the destination.
962
+ * destination.destinationBounds = [20, 20, 100, 50];
963
+ * // Sets destination to document link annotation.
964
+ * annotation.destination = destination;
965
+ * // Save the document
966
+ * document.save('output.pdf');
967
+ * // Destroy the document
968
+ * document.destroy();
969
+ * ```
970
+ */
971
+ set: function (value) {
972
+ if (value !== this._destinationBounds) {
973
+ this._destinationBounds = value;
974
+ this._initializePrimitive();
975
+ }
976
+ },
977
+ enumerable: true,
978
+ configurable: true
979
+ });
980
+ Object.defineProperty(PdfDestination.prototype, "isValid", {
981
+ /**
982
+ * Gets a value indicating whether this instance is valid (Read only).
983
+ *
984
+ * @returns {boolean} value indicating whether this instance is valid.
985
+ * ```typescript
986
+ * // Load an existing PDF document
987
+ * let document: PdfDocument = new PdfDocument(data, password);
988
+ * // Access the annotation at index 0
989
+ * let annot: PdfDocumentLinkAnnotation = document.getPage(0).annotations.at(0) as PdfDocumentLinkAnnotation;
990
+ * // Gets a value indicating whether this instance is valid.
991
+ * let isValid: boolean = annot.destination.isValid;
992
+ * // Save the document
993
+ * document.save('output.pdf');
994
+ * // Destroy the document
995
+ * document.destroy();
996
+ * ```
997
+ */
998
+ get: function () {
999
+ return this._isValid;
1000
+ },
1001
+ enumerable: true,
1002
+ configurable: true
1003
+ });
1004
+ PdfDestination.prototype._setValidation = function (value) {
1005
+ this._isValid = value;
1006
+ };
1007
+ PdfDestination.prototype._initializePrimitive = function () {
1008
+ this._array = [];
1009
+ var page = this._page;
1010
+ var element = this._page._pageDictionary;
1011
+ if (typeof element !== 'undefined' && element !== null) {
1012
+ this._array.push(this._page._ref);
1013
+ }
1014
+ switch (this._destinationMode) {
1015
+ case PdfDestinationMode.location:
1016
+ this._array.push(_PdfName.get('XYZ'));
1017
+ if (typeof page !== 'undefined' && page !== null) {
1018
+ this._array.push(this._location[0]);
1019
+ this._array.push(this._page.graphics._size[1] - this._location[1]);
1020
+ }
1021
+ else {
1022
+ this._array.push(0);
1023
+ this._array.push(0);
1024
+ }
1025
+ this._array.push(this._zoom);
1026
+ break;
1027
+ case PdfDestinationMode.fitToPage:
1028
+ this._array.push(_PdfName.get('Fit'));
1029
+ break;
1030
+ case PdfDestinationMode.fitR:
1031
+ this._array.push(_PdfName.get('FitR'));
1032
+ this._array.push(this._destinationBounds[0]);
1033
+ this._array.push(this._destinationBounds[1]);
1034
+ this._array.push(this._destinationBounds[2]);
1035
+ this._array.push(this._destinationBounds[3]);
1036
+ break;
1037
+ case PdfDestinationMode.fitH:
1038
+ this._array.push(_PdfName.get('FitH'));
1039
+ this._array.push((typeof page !== 'undefined' && page !== null) ? page._size[1] - this._location[1] : 0);
1040
+ break;
1041
+ }
1042
+ if (this._parent) {
1043
+ this._parent._dictionary.set('D', this._array);
1044
+ this._parent._dictionary._updated = true;
1045
+ }
1046
+ };
1047
+ return PdfDestination;
1048
+ }());
1049
+ export { PdfDestination };