@syncfusion/ej2-pdf-export 25.2.3 → 26.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.eslintrc.json +3 -2
  2. package/dist/ej2-pdf-export.umd.min.js +2 -2
  3. package/dist/ej2-pdf-export.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-pdf-export.es2015.js +79 -72
  5. package/dist/es6/ej2-pdf-export.es2015.js.map +1 -1
  6. package/dist/es6/ej2-pdf-export.es5.js +169 -232
  7. package/dist/es6/ej2-pdf-export.es5.js.map +1 -1
  8. package/dist/global/ej2-pdf-export.min.js +2 -2
  9. package/dist/global/ej2-pdf-export.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/dist/ts/implementation/actions/action.d.ts +50 -0
  12. package/dist/ts/implementation/actions/action.ts +76 -0
  13. package/dist/ts/implementation/actions/index.d.ts +6 -0
  14. package/dist/ts/implementation/actions/index.ts +6 -0
  15. package/dist/ts/implementation/actions/uri-action.d.ts +33 -0
  16. package/dist/ts/implementation/actions/uri-action.ts +52 -0
  17. package/dist/ts/implementation/annotations/action-link-annotation.d.ts +30 -0
  18. package/dist/ts/implementation/annotations/action-link-annotation.ts +43 -0
  19. package/dist/ts/implementation/annotations/annotation-collection.d.ts +77 -0
  20. package/dist/ts/implementation/annotations/annotation-collection.ts +159 -0
  21. package/dist/ts/implementation/annotations/annotation.d.ts +152 -0
  22. package/dist/ts/implementation/annotations/annotation.ts +241 -0
  23. package/dist/ts/implementation/annotations/document-link-annotation.d.ts +89 -0
  24. package/dist/ts/implementation/annotations/document-link-annotation.ts +118 -0
  25. package/dist/ts/implementation/annotations/index.d.ts +11 -0
  26. package/dist/ts/implementation/annotations/index.ts +11 -0
  27. package/dist/ts/implementation/annotations/link-annotation.d.ts +23 -0
  28. package/dist/ts/implementation/annotations/link-annotation.ts +32 -0
  29. package/dist/ts/implementation/annotations/pdf-text-web-link.d.ts +118 -0
  30. package/dist/ts/implementation/annotations/pdf-text-web-link.ts +265 -0
  31. package/dist/ts/implementation/annotations/uri-annotation.d.ts +48 -0
  32. package/dist/ts/implementation/annotations/uri-annotation.ts +86 -0
  33. package/dist/ts/implementation/collections/dictionary.d.ts +76 -0
  34. package/dist/ts/implementation/collections/dictionary.ts +150 -0
  35. package/dist/ts/implementation/collections/index.d.ts +7 -0
  36. package/dist/ts/implementation/collections/index.ts +7 -0
  37. package/dist/ts/implementation/collections/object-object-pair/dictionary.d.ts +62 -0
  38. package/dist/ts/implementation/collections/object-object-pair/dictionary.ts +125 -0
  39. package/dist/ts/implementation/collections/object-object-pair/index.d.ts +5 -0
  40. package/dist/ts/implementation/collections/object-object-pair/index.ts +5 -0
  41. package/dist/ts/implementation/collections/utils.d.ts +27 -0
  42. package/dist/ts/implementation/collections/utils.ts +38 -0
  43. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.d.ts +31 -0
  44. package/dist/ts/implementation/document/automatic-fields/automatic-field-info-collection.ts +39 -0
  45. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.d.ts +67 -0
  46. package/dist/ts/implementation/document/automatic-fields/automatic-field-info.ts +108 -0
  47. package/dist/ts/implementation/document/automatic-fields/automatic-field.d.ts +41 -0
  48. package/dist/ts/implementation/document/automatic-fields/automatic-field.ts +127 -0
  49. package/dist/ts/implementation/document/automatic-fields/composite-field.d.ts +46 -0
  50. package/dist/ts/implementation/document/automatic-fields/composite-field.ts +76 -0
  51. package/dist/ts/implementation/document/automatic-fields/index.d.ts +11 -0
  52. package/dist/ts/implementation/document/automatic-fields/index.ts +11 -0
  53. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.d.ts +18 -0
  54. package/dist/ts/implementation/document/automatic-fields/multiple-value-field.ts +37 -0
  55. package/dist/ts/implementation/document/automatic-fields/page-count-field.d.ts +44 -0
  56. package/dist/ts/implementation/document/automatic-fields/page-count-field.ts +75 -0
  57. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.d.ts +53 -0
  58. package/dist/ts/implementation/document/automatic-fields/pdf-numbers-convertor.ts +157 -0
  59. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.d.ts +51 -0
  60. package/dist/ts/implementation/document/automatic-fields/pdf-page-number-field.ts +82 -0
  61. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.d.ts +38 -0
  62. package/dist/ts/implementation/document/automatic-fields/pdf-template-value-pair.ts +60 -0
  63. package/dist/ts/implementation/document/automatic-fields/single-value-field.d.ts +15 -0
  64. package/dist/ts/implementation/document/automatic-fields/single-value-field.ts +48 -0
  65. package/dist/ts/implementation/document/index.d.ts +16 -0
  66. package/dist/ts/implementation/document/index.ts +16 -0
  67. package/dist/ts/implementation/document/pdf-catalog.d.ts +39 -0
  68. package/dist/ts/implementation/document/pdf-catalog.ts +65 -0
  69. package/dist/ts/implementation/document/pdf-document-base.d.ts +132 -0
  70. package/dist/ts/implementation/document/pdf-document-base.ts +180 -0
  71. package/dist/ts/implementation/document/pdf-document-template.d.ts +166 -0
  72. package/dist/ts/implementation/document/pdf-document-template.ts +310 -0
  73. package/dist/ts/implementation/document/pdf-document.d.ts +221 -0
  74. package/dist/ts/implementation/document/pdf-document.ts +342 -0
  75. package/dist/ts/implementation/document/pdf-viewer-preferences.d.ts +467 -0
  76. package/dist/ts/implementation/document/pdf-viewer-preferences.ts +578 -0
  77. package/dist/ts/implementation/drawing/index.d.ts +5 -0
  78. package/dist/ts/implementation/drawing/index.ts +5 -0
  79. package/dist/ts/implementation/drawing/pdf-drawing.d.ts +141 -0
  80. package/dist/ts/implementation/drawing/pdf-drawing.ts +218 -0
  81. package/dist/ts/implementation/general/enum.d.ts +21 -0
  82. package/dist/ts/implementation/general/enum.ts +21 -0
  83. package/dist/ts/implementation/general/functions/index.d.ts +6 -0
  84. package/dist/ts/implementation/general/functions/index.ts +6 -0
  85. package/dist/ts/implementation/general/functions/pdf-function.d.ts +44 -0
  86. package/dist/ts/implementation/general/functions/pdf-function.ts +66 -0
  87. package/dist/ts/implementation/general/functions/pdf-sampled-function.d.ts +25 -0
  88. package/dist/ts/implementation/general/functions/pdf-sampled-function.ts +63 -0
  89. package/dist/ts/implementation/general/index.d.ts +9 -0
  90. package/dist/ts/implementation/general/index.ts +9 -0
  91. package/dist/ts/implementation/general/pdf-cache-collection.d.ts +42 -0
  92. package/dist/ts/implementation/general/pdf-cache-collection.ts +97 -0
  93. package/dist/ts/implementation/general/pdf-collection.d.ts +26 -0
  94. package/dist/ts/implementation/general/pdf-collection.ts +41 -0
  95. package/dist/ts/implementation/general/pdf-destination.d.ts +103 -0
  96. package/dist/ts/implementation/general/pdf-destination.ts +170 -0
  97. package/dist/ts/implementation/graphics/brushes/enum.d.ts +236 -0
  98. package/dist/ts/implementation/graphics/brushes/enum.ts +237 -0
  99. package/dist/ts/implementation/graphics/brushes/index.d.ts +13 -0
  100. package/dist/ts/implementation/graphics/brushes/index.ts +13 -0
  101. package/dist/ts/implementation/graphics/brushes/pdf-blend.d.ts +105 -0
  102. package/dist/ts/implementation/graphics/brushes/pdf-blend.ts +294 -0
  103. package/dist/ts/implementation/graphics/brushes/pdf-brush.d.ts +57 -0
  104. package/dist/ts/implementation/graphics/brushes/pdf-brush.ts +68 -0
  105. package/dist/ts/implementation/graphics/brushes/pdf-brushes.d.ts +726 -0
  106. package/dist/ts/implementation/graphics/brushes/pdf-brushes.ts +2438 -0
  107. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.d.ts +113 -0
  108. package/dist/ts/implementation/graphics/brushes/pdf-color-blend.ts +295 -0
  109. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.d.ts +155 -0
  110. package/dist/ts/implementation/graphics/brushes/pdf-gradient-brush.ts +311 -0
  111. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.d.ts +147 -0
  112. package/dist/ts/implementation/graphics/brushes/pdf-linear-gradient-brush.ts +406 -0
  113. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.d.ts +122 -0
  114. package/dist/ts/implementation/graphics/brushes/pdf-radial-gradient-brush.ts +290 -0
  115. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.d.ts +77 -0
  116. package/dist/ts/implementation/graphics/brushes/pdf-solid-brush.ts +107 -0
  117. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.d.ts +161 -0
  118. package/dist/ts/implementation/graphics/brushes/pdf-tiling-brush.ts +304 -0
  119. package/dist/ts/implementation/graphics/constants.d.ts +31 -0
  120. package/dist/ts/implementation/graphics/constants.ts +31 -0
  121. package/dist/ts/implementation/graphics/enum.d.ts +413 -0
  122. package/dist/ts/implementation/graphics/enum.ts +413 -0
  123. package/dist/ts/implementation/graphics/figures/arc.d.ts +87 -0
  124. package/dist/ts/implementation/graphics/figures/arc.ts +133 -0
  125. package/dist/ts/implementation/graphics/figures/base/draw-element.d.ts +30 -0
  126. package/dist/ts/implementation/graphics/figures/base/draw-element.ts +59 -0
  127. package/dist/ts/implementation/graphics/figures/base/element-layouter.d.ts +161 -0
  128. package/dist/ts/implementation/graphics/figures/base/element-layouter.ts +260 -0
  129. package/dist/ts/implementation/graphics/figures/base/fill-element.d.ts +46 -0
  130. package/dist/ts/implementation/graphics/figures/base/fill-element.ts +72 -0
  131. package/dist/ts/implementation/graphics/figures/base/graphics-element.d.ts +16 -0
  132. package/dist/ts/implementation/graphics/figures/base/graphics-element.ts +34 -0
  133. package/dist/ts/implementation/graphics/figures/base/index.d.ts +9 -0
  134. package/dist/ts/implementation/graphics/figures/base/index.ts +9 -0
  135. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.d.ts +40 -0
  136. package/dist/ts/implementation/graphics/figures/base/pdf-shape-element.ts +69 -0
  137. package/dist/ts/implementation/graphics/figures/base/shape-layouter.d.ts +131 -0
  138. package/dist/ts/implementation/graphics/figures/base/shape-layouter.ts +276 -0
  139. package/dist/ts/implementation/graphics/figures/base/text-layouter.d.ts +107 -0
  140. package/dist/ts/implementation/graphics/figures/base/text-layouter.ts +205 -0
  141. package/dist/ts/implementation/graphics/figures/ellipse-part.d.ts +48 -0
  142. package/dist/ts/implementation/graphics/figures/ellipse-part.ts +76 -0
  143. package/dist/ts/implementation/graphics/figures/enum.d.ts +79 -0
  144. package/dist/ts/implementation/graphics/figures/enum.ts +80 -0
  145. package/dist/ts/implementation/graphics/figures/index.d.ts +13 -0
  146. package/dist/ts/implementation/graphics/figures/index.ts +13 -0
  147. package/dist/ts/implementation/graphics/figures/layout-element.d.ts +73 -0
  148. package/dist/ts/implementation/graphics/figures/layout-element.ts +132 -0
  149. package/dist/ts/implementation/graphics/figures/path.d.ts +319 -0
  150. package/dist/ts/implementation/graphics/figures/path.ts +646 -0
  151. package/dist/ts/implementation/graphics/figures/pdf-template.d.ts +113 -0
  152. package/dist/ts/implementation/graphics/figures/pdf-template.ts +205 -0
  153. package/dist/ts/implementation/graphics/figures/rectangle-area.d.ts +64 -0
  154. package/dist/ts/implementation/graphics/figures/rectangle-area.ts +108 -0
  155. package/dist/ts/implementation/graphics/figures/text-element.d.ts +213 -0
  156. package/dist/ts/implementation/graphics/figures/text-element.ts +445 -0
  157. package/dist/ts/implementation/graphics/fonts/enum.d.ts +385 -0
  158. package/dist/ts/implementation/graphics/fonts/enum.ts +385 -0
  159. package/dist/ts/implementation/graphics/fonts/index.d.ts +16 -0
  160. package/dist/ts/implementation/graphics/fonts/index.ts +16 -0
  161. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.d.ts +164 -0
  162. package/dist/ts/implementation/graphics/fonts/pdf-font-metrics.ts +248 -0
  163. package/dist/ts/implementation/graphics/fonts/pdf-font.d.ts +187 -0
  164. package/dist/ts/implementation/graphics/fonts/pdf-font.ts +316 -0
  165. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.d.ts +301 -0
  166. package/dist/ts/implementation/graphics/fonts/pdf-standard-font-metrics-factory.ts +606 -0
  167. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.d.ts +143 -0
  168. package/dist/ts/implementation/graphics/fonts/pdf-standard-font.ts +243 -0
  169. package/dist/ts/implementation/graphics/fonts/pdf-string-format.d.ts +321 -0
  170. package/dist/ts/implementation/graphics/fonts/pdf-string-format.ts +474 -0
  171. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.d.ts +49 -0
  172. package/dist/ts/implementation/graphics/fonts/pdf-true-type-font.ts +165 -0
  173. package/dist/ts/implementation/graphics/fonts/rtl/index.d.ts +6 -0
  174. package/dist/ts/implementation/graphics/fonts/rtl/index.ts +6 -0
  175. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.d.ts +62 -0
  176. package/dist/ts/implementation/graphics/fonts/rtl/rtl-bidirectional.ts +958 -0
  177. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.d.ts +68 -0
  178. package/dist/ts/implementation/graphics/fonts/rtl/rtl-text-shape.ts +374 -0
  179. package/dist/ts/implementation/graphics/fonts/rtl-renderer.d.ts +23 -0
  180. package/dist/ts/implementation/graphics/fonts/rtl-renderer.ts +255 -0
  181. package/dist/ts/implementation/graphics/fonts/string-layouter.d.ts +254 -0
  182. package/dist/ts/implementation/graphics/fonts/string-layouter.ts +617 -0
  183. package/dist/ts/implementation/graphics/fonts/string-tokenizer.d.ts +109 -0
  184. package/dist/ts/implementation/graphics/fonts/string-tokenizer.ts +275 -0
  185. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.d.ts +204 -0
  186. package/dist/ts/implementation/graphics/fonts/ttf-OS2-Table.ts +206 -0
  187. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.d.ts +17 -0
  188. package/dist/ts/implementation/graphics/fonts/ttf-apple-cmap-sub-table.ts +18 -0
  189. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.d.ts +17 -0
  190. package/dist/ts/implementation/graphics/fonts/ttf-cmap-sub-table.ts +18 -0
  191. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.d.ts +13 -0
  192. package/dist/ts/implementation/graphics/fonts/ttf-cmap-table.ts +14 -0
  193. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.d.ts +25 -0
  194. package/dist/ts/implementation/graphics/fonts/ttf-glyph-header.ts +26 -0
  195. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.d.ts +25 -0
  196. package/dist/ts/implementation/graphics/fonts/ttf-glyph-info.ts +35 -0
  197. package/dist/ts/implementation/graphics/fonts/ttf-head-table.d.ts +94 -0
  198. package/dist/ts/implementation/graphics/fonts/ttf-head-table.ts +94 -0
  199. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.d.ts +55 -0
  200. package/dist/ts/implementation/graphics/fonts/ttf-horizontal-header-table.ts +56 -0
  201. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.d.ts +9 -0
  202. package/dist/ts/implementation/graphics/fonts/ttf-loca-table.ts +10 -0
  203. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.d.ts +13 -0
  204. package/dist/ts/implementation/graphics/fonts/ttf-long-hor-metric.ts +14 -0
  205. package/dist/ts/implementation/graphics/fonts/ttf-metrics.d.ts +101 -0
  206. package/dist/ts/implementation/graphics/fonts/ttf-metrics.ts +106 -0
  207. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.d.ts +57 -0
  208. package/dist/ts/implementation/graphics/fonts/ttf-microsoft-cmap-sub-table.ts +58 -0
  209. package/dist/ts/implementation/graphics/fonts/ttf-name-record.d.ts +33 -0
  210. package/dist/ts/implementation/graphics/fonts/ttf-name-record.ts +33 -0
  211. package/dist/ts/implementation/graphics/fonts/ttf-name-table.d.ts +22 -0
  212. package/dist/ts/implementation/graphics/fonts/ttf-name-table.ts +22 -0
  213. package/dist/ts/implementation/graphics/fonts/ttf-post-table.d.ts +41 -0
  214. package/dist/ts/implementation/graphics/fonts/ttf-post-table.ts +42 -0
  215. package/dist/ts/implementation/graphics/fonts/ttf-reader.d.ts +225 -0
  216. package/dist/ts/implementation/graphics/fonts/ttf-reader.ts +1254 -0
  217. package/dist/ts/implementation/graphics/fonts/ttf-table-info.d.ts +22 -0
  218. package/dist/ts/implementation/graphics/fonts/ttf-table-info.ts +26 -0
  219. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.d.ts +25 -0
  220. package/dist/ts/implementation/graphics/fonts/ttf-trimmed-cmap-sub-table.ts +26 -0
  221. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.d.ts +213 -0
  222. package/dist/ts/implementation/graphics/fonts/unicode-true-type-font.ts +577 -0
  223. package/dist/ts/implementation/graphics/images/byte-array.d.ts +74 -0
  224. package/dist/ts/implementation/graphics/images/byte-array.ts +137 -0
  225. package/dist/ts/implementation/graphics/images/image-decoder.d.ts +274 -0
  226. package/dist/ts/implementation/graphics/images/image-decoder.ts +439 -0
  227. package/dist/ts/implementation/graphics/images/index.d.ts +8 -0
  228. package/dist/ts/implementation/graphics/images/index.ts +8 -0
  229. package/dist/ts/implementation/graphics/images/pdf-bitmap.d.ts +90 -0
  230. package/dist/ts/implementation/graphics/images/pdf-bitmap.ts +110 -0
  231. package/dist/ts/implementation/graphics/images/pdf-image.d.ts +88 -0
  232. package/dist/ts/implementation/graphics/images/pdf-image.ts +132 -0
  233. package/dist/ts/implementation/graphics/index.d.ts +35 -0
  234. package/dist/ts/implementation/graphics/index.ts +46 -0
  235. package/dist/ts/implementation/graphics/pdf-color.d.ts +206 -0
  236. package/dist/ts/implementation/graphics/pdf-color.ts +478 -0
  237. package/dist/ts/implementation/graphics/pdf-graphics.d.ts +1210 -0
  238. package/dist/ts/implementation/graphics/pdf-graphics.ts +2554 -0
  239. package/dist/ts/implementation/graphics/pdf-margins.d.ts +82 -0
  240. package/dist/ts/implementation/graphics/pdf-margins.ts +124 -0
  241. package/dist/ts/implementation/graphics/pdf-pen.d.ts +237 -0
  242. package/dist/ts/implementation/graphics/pdf-pen.ts +370 -0
  243. package/dist/ts/implementation/graphics/pdf-resources.d.ts +122 -0
  244. package/dist/ts/implementation/graphics/pdf-resources.ts +300 -0
  245. package/dist/ts/implementation/graphics/pdf-transformation-matrix.d.ts +143 -0
  246. package/dist/ts/implementation/graphics/pdf-transformation-matrix.ts +246 -0
  247. package/dist/ts/implementation/graphics/pdf-transparency.d.ts +34 -0
  248. package/dist/ts/implementation/graphics/pdf-transparency.ts +93 -0
  249. package/dist/ts/implementation/graphics/unit-convertor.d.ts +72 -0
  250. package/dist/ts/implementation/graphics/unit-convertor.ts +96 -0
  251. package/dist/ts/implementation/index.d.ts +103 -0
  252. package/dist/ts/implementation/index.ts +103 -0
  253. package/dist/ts/implementation/input-output/big-endian-writer.d.ts +59 -0
  254. package/dist/ts/implementation/input-output/big-endian-writer.ts +121 -0
  255. package/dist/ts/implementation/input-output/cross-table.d.ts +21 -0
  256. package/dist/ts/implementation/input-output/cross-table.ts +21 -0
  257. package/dist/ts/implementation/input-output/enum.d.ts +16 -0
  258. package/dist/ts/implementation/input-output/enum.ts +16 -0
  259. package/dist/ts/implementation/input-output/index.d.ts +12 -0
  260. package/dist/ts/implementation/input-output/index.ts +12 -0
  261. package/dist/ts/implementation/input-output/pdf-cross-table.d.ts +249 -0
  262. package/dist/ts/implementation/input-output/pdf-cross-table.ts +524 -0
  263. package/dist/ts/implementation/input-output/pdf-dictionary-properties.d.ts +568 -0
  264. package/dist/ts/implementation/input-output/pdf-dictionary-properties.ts +571 -0
  265. package/dist/ts/implementation/input-output/pdf-main-object-collection.d.ts +120 -0
  266. package/dist/ts/implementation/input-output/pdf-main-object-collection.ts +194 -0
  267. package/dist/ts/implementation/input-output/pdf-operators.d.ts +361 -0
  268. package/dist/ts/implementation/input-output/pdf-operators.ts +363 -0
  269. package/dist/ts/implementation/input-output/pdf-stream-writer.d.ts +311 -0
  270. package/dist/ts/implementation/input-output/pdf-stream-writer.ts +681 -0
  271. package/dist/ts/implementation/input-output/pdf-writer.d.ts +68 -0
  272. package/dist/ts/implementation/input-output/pdf-writer.ts +88 -0
  273. package/dist/ts/implementation/pages/enum.d.ts +201 -0
  274. package/dist/ts/implementation/pages/enum.ts +201 -0
  275. package/dist/ts/implementation/pages/index.d.ts +17 -0
  276. package/dist/ts/implementation/pages/index.ts +17 -0
  277. package/dist/ts/implementation/pages/page-added-event-arguments.d.ts +30 -0
  278. package/dist/ts/implementation/pages/page-added-event-arguments.ts +39 -0
  279. package/dist/ts/implementation/pages/pdf-document-page-collection.d.ts +86 -0
  280. package/dist/ts/implementation/pages/pdf-document-page-collection.ts +180 -0
  281. package/dist/ts/implementation/pages/pdf-page-base.d.ts +121 -0
  282. package/dist/ts/implementation/pages/pdf-page-base.ts +181 -0
  283. package/dist/ts/implementation/pages/pdf-page-layer-collection.d.ts +99 -0
  284. package/dist/ts/implementation/pages/pdf-page-layer-collection.ts +348 -0
  285. package/dist/ts/implementation/pages/pdf-page-layer.d.ts +160 -0
  286. package/dist/ts/implementation/pages/pdf-page-layer.ts +271 -0
  287. package/dist/ts/implementation/pages/pdf-page-settings.d.ts +111 -0
  288. package/dist/ts/implementation/pages/pdf-page-settings.ts +192 -0
  289. package/dist/ts/implementation/pages/pdf-page-size.d.ts +159 -0
  290. package/dist/ts/implementation/pages/pdf-page-size.ts +162 -0
  291. package/dist/ts/implementation/pages/pdf-page-template-element.d.ts +240 -0
  292. package/dist/ts/implementation/pages/pdf-page-template-element.ts +663 -0
  293. package/dist/ts/implementation/pages/pdf-page.d.ts +153 -0
  294. package/dist/ts/implementation/pages/pdf-page.ts +235 -0
  295. package/dist/ts/implementation/pages/pdf-section-collection.d.ts +109 -0
  296. package/dist/ts/implementation/pages/pdf-section-collection.ts +187 -0
  297. package/dist/ts/implementation/pages/pdf-section-page-collection.d.ts +41 -0
  298. package/dist/ts/implementation/pages/pdf-section-page-collection.ts +61 -0
  299. package/dist/ts/implementation/pages/pdf-section-templates.d.ts +64 -0
  300. package/dist/ts/implementation/pages/pdf-section-templates.ts +96 -0
  301. package/dist/ts/implementation/pages/pdf-section.d.ts +327 -0
  302. package/dist/ts/implementation/pages/pdf-section.ts +644 -0
  303. package/dist/ts/implementation/primitives/index.d.ts +12 -0
  304. package/dist/ts/implementation/primitives/index.ts +12 -0
  305. package/dist/ts/implementation/primitives/pdf-array.d.ts +192 -0
  306. package/dist/ts/implementation/primitives/pdf-array.ts +386 -0
  307. package/dist/ts/implementation/primitives/pdf-boolean.d.ts +84 -0
  308. package/dist/ts/implementation/primitives/pdf-boolean.ts +119 -0
  309. package/dist/ts/implementation/primitives/pdf-dictionary.d.ts +362 -0
  310. package/dist/ts/implementation/primitives/pdf-dictionary.ts +513 -0
  311. package/dist/ts/implementation/primitives/pdf-name.d.ts +121 -0
  312. package/dist/ts/implementation/primitives/pdf-name.ts +218 -0
  313. package/dist/ts/implementation/primitives/pdf-number.d.ts +104 -0
  314. package/dist/ts/implementation/primitives/pdf-number.ts +165 -0
  315. package/dist/ts/implementation/primitives/pdf-reference.d.ts +223 -0
  316. package/dist/ts/implementation/primitives/pdf-reference.ts +430 -0
  317. package/dist/ts/implementation/primitives/pdf-stream.d.ts +161 -0
  318. package/dist/ts/implementation/primitives/pdf-stream.ts +306 -0
  319. package/dist/ts/implementation/primitives/pdf-string.d.ts +235 -0
  320. package/dist/ts/implementation/primitives/pdf-string.ts +397 -0
  321. package/dist/ts/implementation/structured-elements/grid/index.d.ts +4 -0
  322. package/dist/ts/implementation/structured-elements/grid/index.ts +10 -0
  323. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.d.ts +597 -0
  324. package/dist/ts/implementation/structured-elements/grid/layout/grid-layouter.ts +2029 -0
  325. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.d.ts +288 -0
  326. package/dist/ts/implementation/structured-elements/grid/pdf-grid-cell.ts +1194 -0
  327. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.d.ts +108 -0
  328. package/dist/ts/implementation/structured-elements/grid/pdf-grid-column.ts +206 -0
  329. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.d.ts +261 -0
  330. package/dist/ts/implementation/structured-elements/grid/pdf-grid-row.ts +470 -0
  331. package/dist/ts/implementation/structured-elements/grid/pdf-grid.d.ts +292 -0
  332. package/dist/ts/implementation/structured-elements/grid/pdf-grid.ts +853 -0
  333. package/dist/ts/implementation/structured-elements/grid/styles/index.d.ts +5 -0
  334. package/dist/ts/implementation/structured-elements/grid/styles/index.ts +5 -0
  335. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.d.ts +146 -0
  336. package/dist/ts/implementation/structured-elements/grid/styles/pdf-borders.ts +240 -0
  337. package/dist/ts/implementation/structured-elements/grid/styles/style.d.ts +272 -0
  338. package/dist/ts/implementation/structured-elements/grid/styles/style.ts +424 -0
  339. package/dist/ts/implementation/structured-elements/index.d.ts +4 -0
  340. package/dist/ts/implementation/structured-elements/index.ts +10 -0
  341. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.d.ts +16 -0
  342. package/dist/ts/implementation/structured-elements/tables/light-tables/enum.ts +16 -0
  343. package/dist/ts/index.d.ts +116 -0
  344. package/dist/ts/index.ts +116 -0
  345. package/dist/ts/interfaces/i-pdf-cache.d.ts +23 -0
  346. package/dist/ts/interfaces/i-pdf-cache.ts +23 -0
  347. package/dist/ts/interfaces/i-pdf-changable.d.ts +17 -0
  348. package/dist/ts/interfaces/i-pdf-changable.ts +17 -0
  349. package/dist/ts/interfaces/i-pdf-clonable.d.ts +12 -0
  350. package/dist/ts/interfaces/i-pdf-clonable.ts +12 -0
  351. package/dist/ts/interfaces/i-pdf-primitives.d.ts +45 -0
  352. package/dist/ts/interfaces/i-pdf-primitives.ts +45 -0
  353. package/dist/ts/interfaces/i-pdf-true-type-font.d.ts +18 -0
  354. package/dist/ts/interfaces/i-pdf-true-type-font.ts +48 -0
  355. package/dist/ts/interfaces/i-pdf-wrapper.d.ts +13 -0
  356. package/dist/ts/interfaces/i-pdf-wrapper.ts +13 -0
  357. package/dist/ts/interfaces/i-pdf-writer.d.ts +29 -0
  358. package/dist/ts/interfaces/i-pdf-writer.ts +29 -0
  359. package/dist/ts/interfaces/index.d.ts +10 -0
  360. package/dist/ts/interfaces/index.ts +10 -0
  361. package/interfaces.js +0 -1
  362. package/package.json +7 -7
  363. package/src/interfaces/i-pdf-cache.js +0 -1
  364. package/src/interfaces/i-pdf-changable.js +0 -1
  365. package/src/interfaces/i-pdf-clonable.js +0 -1
  366. package/src/interfaces/i-pdf-primitives.js +0 -1
  367. package/src/interfaces/i-pdf-true-type-font.js +0 -1
  368. package/src/interfaces/i-pdf-wrapper.js +0 -1
  369. package/src/interfaces/i-pdf-writer.js +0 -1
  370. package/src/interfaces/index.js +0 -1
  371. package/CHANGELOG.md +0 -57
  372. package/dist/ej2-pdf-export.min.js +0 -10
@@ -0,0 +1,617 @@
1
+ /**
2
+ * PdfStringLayouter.ts class for EJ2-PDF
3
+ */
4
+ import { PdfFont } from './pdf-font';
5
+ import { PdfStringFormat } from './pdf-string-format';
6
+ import { SizeF, RectangleF, PointF } from './../../drawing/pdf-drawing';
7
+ import { PdfWordWrapType } from './enum';
8
+ import { StringTokenizer } from './string-tokenizer';
9
+ /**
10
+ * Class `lay outing the text`.
11
+ */
12
+ export class PdfStringLayouter {
13
+ // Fields
14
+ /**
15
+ * `Text` data.
16
+ * @private
17
+ */
18
+ private text : string;
19
+ /**
20
+ * Pdf `font`.
21
+ * @private
22
+ */
23
+ private font : PdfFont;
24
+ /**
25
+ * String `format`.
26
+ * @private
27
+ */
28
+ private format : PdfStringFormat;
29
+ /**
30
+ * `Size` of the text.
31
+ * @private
32
+ */
33
+ private size : SizeF;
34
+ /**
35
+ * `Bounds` of the text.
36
+ * @private
37
+ */
38
+ private rectangle : RectangleF;
39
+ /**
40
+ * Pdf page `height`.
41
+ * @private
42
+ */
43
+ private pageHeight : number;
44
+ /**
45
+ * String `tokenizer`.
46
+ * @private
47
+ */
48
+ private reader : StringTokenizer;
49
+ /**
50
+ * Specifies if [`isTabReplaced`].
51
+ * @private
52
+ */
53
+ private isTabReplaced : boolean;
54
+ /**
55
+ * Count of tab `occurance`.
56
+ * @private
57
+ */
58
+ private tabOccuranceCount : number;
59
+ /**
60
+ * Checks whether the x co-ordinate is need to set as client size or not.
61
+ * @hidden
62
+ * @private
63
+ */
64
+ private isOverloadWithPosition : boolean = false;
65
+ /**
66
+ * Stores client size of the page if the layout method invoked with `PointF` overload.
67
+ * @hidden
68
+ * @private
69
+ */
70
+ private clientSize : SizeF;
71
+ // Constructors
72
+ /**
73
+ * Initializes a new instance of the `StringLayouter` class.
74
+ * @private
75
+ */
76
+ public constructor() {
77
+ //
78
+ }
79
+
80
+ //Public methods
81
+ /**
82
+ * `Layouts` the text.
83
+ * @private
84
+ */
85
+ public layout(text : string, font : PdfFont, format : PdfStringFormat, rectangle : RectangleF,
86
+ pageHeight : number, recalculateBounds : boolean, clientSize : SizeF) : PdfStringLayoutResult
87
+ public layout(text : string, font : PdfFont, format : PdfStringFormat, size : SizeF,
88
+ recalculateBounds : boolean, clientSize : SizeF) : PdfStringLayoutResult
89
+ public layout(arg1 : string, arg2 : PdfFont, arg3 : PdfStringFormat, arg4 : SizeF|RectangleF,
90
+ arg5 : number | boolean, arg6 : boolean | SizeF, arg7 ?: SizeF) : PdfStringLayoutResult {
91
+ if (arg4 instanceof RectangleF) {
92
+ this.initialize(arg1, arg2, arg3, <RectangleF>arg4, arg5 as number);
93
+ this.isOverloadWithPosition = arg6 as boolean;
94
+ this.clientSize = arg7 as SizeF;
95
+ let result : PdfStringLayoutResult = this.doLayout();
96
+ this.clear();
97
+ return result;
98
+ } else {
99
+ this.initialize(arg1, arg2, arg3, arg4 as SizeF);
100
+ this.isOverloadWithPosition = arg5 as boolean;
101
+ this.clientSize = arg6 as SizeF;
102
+ let result : PdfStringLayoutResult = this.doLayout();
103
+ this.clear();
104
+ return result;
105
+ }
106
+ }
107
+ // recalculateBounds : boolean, clientSize : SizeF
108
+ //Implementation
109
+ /**
110
+ * `Initializes` internal data.
111
+ * @private
112
+ */
113
+ private initialize(text : string, font : PdfFont, format : PdfStringFormat, rectangle : RectangleF, pageHeight : number) : void
114
+ private initialize(text : string, font : PdfFont, format : PdfStringFormat, size : SizeF) : void
115
+ private initialize(text : string, font : PdfFont, format : PdfStringFormat, rectSize : SizeF|RectangleF,
116
+ pageHeight ?: number) : void {
117
+ if (typeof pageHeight === 'number') {
118
+ if (text == null) {
119
+ throw new Error('ArgumentNullException:text');
120
+ }
121
+ if (font == null) {
122
+ throw new Error('ArgumentNullException:font');
123
+ }
124
+ this.text = text;
125
+ this.font = font;
126
+ this.format = format;
127
+ this.size = new SizeF(rectSize.width, rectSize.height);
128
+ this.rectangle = <RectangleF>rectSize;
129
+ this.pageHeight = pageHeight;
130
+ this.reader = new StringTokenizer(text);
131
+ } else {
132
+ this.initialize(text, font, format, new RectangleF(new PointF(0, 0), <SizeF>rectSize), 0);
133
+ }
134
+ }
135
+ /**
136
+ * `Clear` all resources.
137
+ * @private
138
+ */
139
+ private clear() : void {
140
+ this.font = null;
141
+ this.format = null;
142
+ this.reader.close();
143
+ this.reader = null;
144
+ this.text = null;
145
+ }
146
+ /**
147
+ * `Layouts` the text.
148
+ * @private
149
+ */
150
+ private doLayout() : PdfStringLayoutResult {
151
+ let result : PdfStringLayoutResult = new PdfStringLayoutResult();
152
+ let lineResult : PdfStringLayoutResult = new PdfStringLayoutResult();
153
+ let lines : LineInfo[] = [];
154
+ let line : string = this.reader.peekLine();
155
+ let lineIndent : number = this.getLineIndent(true);
156
+ while (line != null) {
157
+ lineResult = this.layoutLine(line, lineIndent);
158
+ if (lineResult !== null || typeof lineResult !== 'undefined') {
159
+ let numSymbolsInserted : number = 0;
160
+ /* tslint:disable */
161
+ let returnedValue : { success : boolean, numInserted : number } = this.copyToResult(result, lineResult, lines, /*out*/ numSymbolsInserted);
162
+ /* tslint:enable */
163
+ let success : boolean = returnedValue.success;
164
+ numSymbolsInserted = returnedValue.numInserted;
165
+ if (!success) {
166
+ this.reader.read(numSymbolsInserted);
167
+ break;
168
+ }
169
+ }
170
+ // if (lineResult.textRemainder != null && lineResult.textRemainder.length > 0 ) {
171
+ // break;
172
+ // }
173
+ this.reader.readLine();
174
+ line = this.reader.peekLine();
175
+ lineIndent = this.getLineIndent(false);
176
+ }
177
+ this.finalizeResult(result, lines);
178
+ return result;
179
+ }
180
+ /**
181
+ * Returns `line indent` for the line.
182
+ * @private
183
+ */
184
+ private getLineIndent(firstLine : boolean) : number {
185
+ let lineIndent : number = 0;
186
+ if (this.format != null) {
187
+ lineIndent = (firstLine) ? this.format.firstLineIndent : this.format.paragraphIndent;
188
+ lineIndent = (this.size.width > 0) ? Math.min(this.size.width, lineIndent) : lineIndent;
189
+ }
190
+ return lineIndent;
191
+ }
192
+ /**
193
+ * Calculates `height` of the line.
194
+ * @private
195
+ */
196
+ private getLineHeight() : number {
197
+ let height : number = this.font.height;
198
+ if (this.format != null && this.format.lineSpacing !== 0) {
199
+ height = this.format.lineSpacing + this.font.height;
200
+ }
201
+ return height;
202
+ }
203
+ /**
204
+ * Calculates `width` of the line.
205
+ * @private
206
+ */
207
+ private getLineWidth(line : string) : number {
208
+ let width : number = this.font.getLineWidth(line, this.format);
209
+ return width;
210
+ }
211
+ // tslint:disable
212
+ /**
213
+ * `Layouts` line.
214
+ * @private
215
+ */
216
+ private layoutLine(line : string, lineIndent : number) : PdfStringLayoutResult {
217
+ let lineResult : PdfStringLayoutResult = new PdfStringLayoutResult();
218
+ lineResult.layoutLineHeight = this.getLineHeight();
219
+ let lines : LineInfo[] = [];
220
+ let maxWidth : number = this.size.width;
221
+ let lineWidth : number = this.getLineWidth(line) + lineIndent;
222
+ let lineType : LineType = LineType.FirstParagraphLine;
223
+ let readWord : boolean = true;
224
+ // line is in bounds.
225
+ if (maxWidth <= 0 || Math.round(lineWidth) <= Math.round(maxWidth)) {
226
+ this.addToLineResult(lineResult, lines, line, lineWidth, LineType.NewLineBreak | lineType);
227
+ } else {
228
+ let builder : string = '';
229
+ let curLine : string = '';
230
+ lineWidth = lineIndent;
231
+ let curIndent : number = lineIndent;
232
+ let reader : StringTokenizer = new StringTokenizer(line);
233
+ let word : string = reader.peekWord();
234
+ let isSingleWord : boolean = false;
235
+ if (word.length !== reader.length) {
236
+ if (word === ' ') {
237
+ curLine = curLine + word;
238
+ builder = builder + word;
239
+ reader.position += 1;
240
+ word = reader.peekWord();
241
+ }
242
+ }
243
+ while (word != null) {
244
+ curLine = curLine + word;
245
+ let curLineWidth : number = /*Utils.Round(*/ this.getLineWidth(curLine.toString()) + curIndent /*)*/;
246
+ if (curLine.toString() === ' ') {
247
+ curLine = '';
248
+ curLineWidth = 0;
249
+ }
250
+ if (curLineWidth > maxWidth) {
251
+ if (this.getWrapType() === PdfWordWrapType.None) {
252
+ break;
253
+ }
254
+ if (curLine.length === word.length) {
255
+ // Character wrap is disabled or one symbol is greater than bounds.
256
+ if (this.getWrapType() === PdfWordWrapType.WordOnly) {
257
+ lineResult.textRemainder = line.substring(reader.position);
258
+ break;
259
+ } else if (curLine.length === 1) {
260
+ builder = builder + word;
261
+ break;
262
+ } else {
263
+ readWord = false;
264
+ curLine = '';
265
+ word = reader.peek().toString();
266
+ continue;
267
+ }
268
+ } else {
269
+ if (this.getLineWidth(word.toString()) > maxWidth) {
270
+ this.format.wordWrap = PdfWordWrapType.Character;
271
+ } else {
272
+ if (typeof this.format !== 'undefined' && this.format !== null ) {
273
+ this.format.wordWrap = PdfWordWrapType.Word;
274
+ }
275
+ }
276
+ if (this.getWrapType() !== PdfWordWrapType.Character || !readWord) {
277
+ let ln : string = builder.toString();
278
+ // if (ln.indexOf(' ') === -1) {
279
+ // isSingleWord = true;
280
+ // this.addToLineResult(lineResult, lines, curLine, lineWidth, LineType.LayoutBreak | lineType);
281
+ // } else {
282
+ // this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.LayoutBreak | lineType);
283
+ // }
284
+ if (ln !== ' ') {
285
+ this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.LayoutBreak | lineType);
286
+ }
287
+ if (this.isOverloadWithPosition) {
288
+ maxWidth = this.clientSize.width;
289
+ }
290
+ curLine = '';
291
+ builder = '';
292
+ lineWidth = 0;
293
+ curIndent = 0;
294
+ curLineWidth = 0;
295
+ lineType = LineType.None;
296
+ // if (isSingleWord) {
297
+ // reader.readWord();
298
+ // readWord = false;
299
+ // }
300
+ word = (readWord) ? word : reader.peekWord();
301
+ //isSingleWord = false;
302
+ readWord = true;
303
+ } else {
304
+ readWord = false;
305
+ curLine = '';
306
+ curLine = curLine + builder.toString();
307
+ word = reader.peek().toString();
308
+ }
309
+ continue;
310
+ }
311
+ }
312
+ /*tslint:disable:max-func-body-length */
313
+ builder = builder + word;
314
+ lineWidth = curLineWidth;
315
+ if (readWord) {
316
+ reader.readWord();
317
+ word = reader.peekWord();
318
+ //isSingleWord = false;
319
+ } else {
320
+ reader.read();
321
+ word = reader.peek().toString();
322
+ }
323
+ }
324
+ if (builder.length > 0) {
325
+ let ln : string = builder.toString();
326
+ this.addToLineResult(lineResult, lines, ln, lineWidth, LineType.NewLineBreak | LineType.LastParagraphLine);
327
+ }
328
+ reader.close();
329
+ }
330
+ lineResult.layoutLines = [];
331
+ for (let index : number = 0; index < lines.length; index++) {
332
+ lineResult.layoutLines.push(lines[index]);
333
+ }
334
+ lines = [];
335
+ return lineResult;
336
+ }
337
+ /**
338
+ * `Adds` line to line result.
339
+ * @private
340
+ */
341
+ private addToLineResult(lineResult : PdfStringLayoutResult, lines : LineInfo[], line : string,
342
+ lineWidth : number, breakType : LineType) : void {
343
+ let info : LineInfo = new LineInfo();
344
+ info.text = line;
345
+ info.width = lineWidth;
346
+ info.lineType = breakType;
347
+ lines.push(info);
348
+ let size : SizeF = lineResult.actualSize;
349
+ size.height += this.getLineHeight();
350
+ size.width = Math.max(size.width, lineWidth);
351
+ lineResult.size = size;
352
+ }
353
+ /**
354
+ * `Copies` layout result from line result to entire result. Checks whether we can proceed lay outing or not.
355
+ * @private
356
+ */
357
+ private copyToResult(result : PdfStringLayoutResult, lineResult : PdfStringLayoutResult, lines : LineInfo[],
358
+ /*out*/ numInserted : number) : { success : boolean, numInserted : number } {
359
+ let success : boolean = true;
360
+ let allowPartialLines : boolean = (this.format != null && !this.format.lineLimit);
361
+ let height : number = result.actualSize.height;
362
+ let maxHeight : number = this.size.height;
363
+ if ((this.pageHeight > 0) && (maxHeight + this.rectangle.y > this.pageHeight)) {
364
+ maxHeight = this.rectangle.y - this.pageHeight;
365
+ maxHeight = Math.max(maxHeight, -maxHeight);
366
+ }
367
+ numInserted = 0;
368
+ if (lineResult.lines != null) {
369
+ for (let i : number = 0, len : number = lineResult.lines.length; i < len; i++) {
370
+ let expHeight : number = height + lineResult.lineHeight;
371
+ if (expHeight <= maxHeight || maxHeight <= 0 || allowPartialLines)
372
+ {
373
+ let info : LineInfo = lineResult.lines[i];
374
+ numInserted += info.text.length;
375
+ info = this.trimLine(info, (lines.length === 0));
376
+ lines.push(info);
377
+ // Update width.
378
+ let size : SizeF = result.actualSize;
379
+ size.width = Math.max(size.width, info.width);
380
+ result.size = size;
381
+ // The part of the line fits only and it's allowed to use partial lines.
382
+ // if (expHeight >= maxHeight && maxHeight > 0 && allowPartialLines)
383
+ // {
384
+ // let shouldClip : boolean = (this.format == null || !this.format.noClip);
385
+
386
+ // if (shouldClip)
387
+ // {
388
+ // let exceededHeight : number = expHeight - maxHeight;
389
+ // let fitHeight : number = /*Utils.Round(*/ lineResult.lineHeight - exceededHeight /*)*/;
390
+ // height = /*Utils.Round(*/ height + fitHeight /*)*/;
391
+ // }
392
+ // else
393
+ // {
394
+ // height = expHeight;
395
+ // }
396
+
397
+ // success = false;
398
+ // break;
399
+ // } else {
400
+ height = expHeight;
401
+ // }
402
+ }
403
+ else
404
+ {
405
+ success = false;
406
+ break;
407
+ }
408
+ }
409
+ }
410
+ if (height != result.size.height)
411
+ {
412
+ let size1 : SizeF= result.actualSize;
413
+ size1.height = height;
414
+ result.size = size1;
415
+ }
416
+ return {success : success, numInserted : numInserted};
417
+ }
418
+ /**
419
+ * `Finalizes` final result.
420
+ * @private
421
+ */
422
+ private finalizeResult(result : PdfStringLayoutResult, lines : LineInfo[]) : void {
423
+ result.layoutLines = [];
424
+ for (let index : number = 0; index < lines.length ; index++) {
425
+ result.layoutLines.push(lines[index]);
426
+ }
427
+ result.layoutLineHeight = this.getLineHeight();
428
+ if (!this.reader.end)
429
+ {
430
+ result.textRemainder = this.reader.readToEnd();
431
+ }
432
+ lines = [];
433
+ }
434
+ /**
435
+ * `Trims` whitespaces at the line.
436
+ * @private
437
+ */
438
+ private trimLine(info : LineInfo, firstLine : boolean) : LineInfo {
439
+ let line : string = info.text;
440
+ let lineWidth : number = info.width;
441
+ // Trim start whitespaces if the line is not a start of the paragraph only.
442
+ let trimStartSpaces : boolean = ((info.lineType & LineType.FirstParagraphLine) === 0);
443
+ let start : boolean = (this.format == null || !this.format.rightToLeft);
444
+ let spaces : string[] = StringTokenizer.spaces;
445
+ line = (start) ? line.trim() : line.trim();
446
+ // Recalculate line width.
447
+ if (line.length !== info.text.length) {
448
+ lineWidth = this.getLineWidth(line);
449
+ if ((info.lineType & LineType.FirstParagraphLine) > 0) {
450
+ lineWidth += this.getLineIndent(firstLine);
451
+ }
452
+ }
453
+ info.text = line;
454
+ info.width = lineWidth;
455
+ return info;
456
+ }
457
+ /**
458
+ * Returns `wrap` type.
459
+ * @private
460
+ */
461
+ private getWrapType() : PdfWordWrapType {
462
+ let wrapType : PdfWordWrapType = (this.format != null) ? this.format.wordWrap : PdfWordWrapType.Word;
463
+ return wrapType;
464
+ }
465
+ }
466
+ //Internal declaration
467
+ export class PdfStringLayoutResult {
468
+ //Fields
469
+ /**
470
+ * Layout `lines`.
471
+ * @private
472
+ */
473
+ public layoutLines : LineInfo[];
474
+ /**
475
+ * The `text` wasn`t lay outed.
476
+ * @private
477
+ */
478
+ public textRemainder : string;
479
+ /**
480
+ * Actual layout text `bounds`.
481
+ * @private
482
+ */
483
+ public size : SizeF;
484
+ /**
485
+ * `Height` of the line.
486
+ * @private
487
+ */
488
+ public layoutLineHeight : number;
489
+ // Properties
490
+ /**
491
+ * Gets the `text` which is not lay outed.
492
+ * @private
493
+ */
494
+ public get remainder() : string {
495
+ return this.textRemainder;
496
+ }
497
+ /**
498
+ * Gets the actual layout text `bounds`.
499
+ * @private
500
+ */
501
+ public get actualSize() : SizeF {
502
+ if ( typeof this.size === 'undefined' ) {
503
+ this.size = new SizeF(0, 0);
504
+ }
505
+ return this.size;
506
+ }
507
+ /**
508
+ * Gets layout `lines` information.
509
+ * @private
510
+ */
511
+ public get lines() : LineInfo[] {
512
+ return this.layoutLines;
513
+ }
514
+ /**
515
+ * Gets the `height` of the line.
516
+ * @private
517
+ */
518
+ public get lineHeight() : number {
519
+ return this.layoutLineHeight;
520
+ }
521
+ /**
522
+ * Gets value that indicates whether any layout text [`empty`].
523
+ * @private
524
+ */
525
+ public get empty() : boolean {
526
+ return (this.layoutLines == null || this.layoutLines.length === 0);
527
+ }
528
+ /**
529
+ * Gets `number of` the layout lines.
530
+ * @private
531
+ */
532
+ public get lineCount() : number {
533
+ let count : number = (!this.empty) ? this.layoutLines.length : 0;
534
+ return count;
535
+ }
536
+ }
537
+ export class LineInfo {
538
+ //Fields
539
+ /**
540
+ * Line `text`.
541
+ * @private
542
+ */
543
+ public content : string;
544
+ /**
545
+ * `Width` of the text.
546
+ * @private
547
+ */
548
+ public lineWidth : number;
549
+ /**
550
+ * `Breaking type` of the line.
551
+ * @private
552
+ */
553
+ public type : LineType;
554
+
555
+ //Properties
556
+ /**
557
+ * Gets the `type` of the line text.
558
+ * @private
559
+ */
560
+ public get lineType() : LineType {
561
+ return this.type;
562
+ }
563
+ public set lineType(value : LineType) {
564
+ this.type = value;
565
+ }
566
+ /**
567
+ * Gets the line `text`.
568
+ * @private
569
+ */
570
+ public get text() : string {
571
+ return this.content;
572
+ }
573
+ public set text(value : string) {
574
+ this.content = value;
575
+ }
576
+ /**
577
+ * Gets `width` of the line text.
578
+ * @private
579
+ */
580
+ public get width() : number {
581
+ return this.lineWidth;
582
+ }
583
+ public set width(value : number) {
584
+ this.lineWidth = value;
585
+ }
586
+ }
587
+ /**
588
+ * Break type of the `line`.
589
+ * @private
590
+ */
591
+ export enum LineType {
592
+ /**
593
+ * Specifies the type of `None`.
594
+ * @private
595
+ */
596
+ None = 0,
597
+ /**
598
+ * Specifies the type of `NewLineBreak`.
599
+ * @private
600
+ */
601
+ NewLineBreak = 0x0001,
602
+ /**
603
+ * Specifies the type of `LayoutBreak`.
604
+ * @private
605
+ */
606
+ LayoutBreak = 0x0002,
607
+ /**
608
+ * Specifies the type of `FirstParagraphLine`.
609
+ * @private
610
+ */
611
+ FirstParagraphLine = 0x0004,
612
+ /**
613
+ * Specifies the type of `LastParagraphLine`.
614
+ * @private
615
+ */
616
+ LastParagraphLine = 0x0008
617
+ }