@cj-tech-master/excelts 9.4.2 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (618) hide show
  1. package/dist/browser/index.browser.d.ts +8 -5
  2. package/dist/browser/index.browser.js +19 -1
  3. package/dist/browser/index.d.ts +4 -2
  4. package/dist/browser/index.js +9 -1
  5. package/dist/browser/modules/excel/chart/cache-populator.d.ts +49 -0
  6. package/dist/browser/modules/excel/chart/cache-populator.js +1171 -0
  7. package/dist/browser/modules/excel/chart/chart-api.d.ts +92 -0
  8. package/dist/browser/modules/excel/chart/chart-api.js +364 -0
  9. package/dist/browser/modules/excel/chart/chart-builder.d.ts +48 -0
  10. package/dist/browser/modules/excel/chart/chart-builder.js +2432 -0
  11. package/dist/browser/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  12. package/dist/browser/modules/excel/chart/chart-ex-builder.js +903 -0
  13. package/dist/browser/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  14. package/dist/browser/modules/excel/chart/chart-ex-parser.js +1205 -0
  15. package/dist/browser/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  16. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +5352 -0
  17. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +531 -0
  18. package/dist/browser/modules/excel/chart/chart-ex-types.js +11 -0
  19. package/dist/browser/modules/excel/chart/chart-images.d.ts +78 -0
  20. package/dist/browser/modules/excel/chart/chart-images.js +363 -0
  21. package/dist/browser/modules/excel/chart/chart-presets.d.ts +392 -0
  22. package/dist/browser/modules/excel/chart/chart-presets.js +179 -0
  23. package/dist/browser/modules/excel/chart/chart-renderer.d.ts +550 -0
  24. package/dist/browser/modules/excel/chart/chart-renderer.js +6440 -0
  25. package/dist/browser/modules/excel/chart/chart-sidecar.d.ts +21 -0
  26. package/dist/browser/modules/excel/chart/chart-sidecar.js +427 -0
  27. package/dist/browser/modules/excel/chart/chart-utils.d.ts +306 -0
  28. package/dist/browser/modules/excel/chart/chart-utils.js +821 -0
  29. package/dist/browser/modules/excel/chart/chart.d.ts +504 -0
  30. package/dist/browser/modules/excel/chart/chart.js +1320 -0
  31. package/dist/browser/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  32. package/dist/browser/modules/excel/chart/glyph-rasterizer.js +658 -0
  33. package/dist/browser/modules/excel/chart/index.d.ts +54 -0
  34. package/dist/browser/modules/excel/chart/index.js +46 -0
  35. package/dist/browser/modules/excel/chart/install.d.ts +44 -0
  36. package/dist/browser/modules/excel/chart/install.js +91 -0
  37. package/dist/browser/modules/excel/chart/shape-properties.d.ts +156 -0
  38. package/dist/browser/modules/excel/chart/shape-properties.js +1557 -0
  39. package/dist/browser/modules/excel/chart/stroke-font.d.ts +36 -0
  40. package/dist/browser/modules/excel/chart/stroke-font.js +1556 -0
  41. package/dist/browser/modules/excel/chart/topojson.d.ts +98 -0
  42. package/dist/browser/modules/excel/chart/topojson.js +236 -0
  43. package/dist/browser/modules/excel/chart/types.d.ts +2559 -0
  44. package/dist/browser/modules/excel/chart/types.js +8 -0
  45. package/dist/browser/modules/excel/chart-host-registry.d.ts +157 -0
  46. package/dist/browser/modules/excel/chart-host-registry.js +90 -0
  47. package/dist/browser/modules/excel/chartsheet.d.ts +102 -0
  48. package/dist/browser/modules/excel/chartsheet.js +196 -0
  49. package/dist/browser/modules/excel/defined-names.d.ts +35 -0
  50. package/dist/browser/modules/excel/defined-names.js +44 -4
  51. package/dist/browser/modules/excel/errors.d.ts +6 -0
  52. package/dist/browser/modules/excel/errors.js +9 -0
  53. package/dist/browser/modules/excel/form-control.d.ts +6 -0
  54. package/dist/browser/modules/excel/form-control.js +17 -0
  55. package/dist/browser/modules/excel/image.js +12 -2
  56. package/dist/browser/modules/excel/pivot-chart.d.ts +7 -0
  57. package/dist/browser/modules/excel/pivot-chart.js +53 -0
  58. package/dist/browser/modules/excel/pivot-table.d.ts +55 -0
  59. package/dist/browser/modules/excel/pivot-table.js +35 -0
  60. package/dist/browser/modules/excel/range.js +5 -1
  61. package/dist/browser/modules/excel/sparkline/index.d.ts +7 -0
  62. package/dist/browser/modules/excel/sparkline/index.js +7 -0
  63. package/dist/browser/modules/excel/sparkline/sparkline.d.ts +206 -0
  64. package/dist/browser/modules/excel/sparkline/sparkline.js +750 -0
  65. package/dist/browser/modules/excel/stream/worksheet-writer.js +3 -2
  66. package/dist/browser/modules/excel/table.js +42 -6
  67. package/dist/browser/modules/excel/types.d.ts +72 -0
  68. package/dist/browser/modules/excel/utils/address.d.ts +18 -0
  69. package/dist/browser/modules/excel/utils/address.js +28 -0
  70. package/dist/browser/modules/excel/utils/drawing-utils.js +11 -6
  71. package/dist/browser/modules/excel/utils/guid.d.ts +15 -0
  72. package/dist/browser/modules/excel/utils/guid.js +35 -0
  73. package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +74 -0
  74. package/dist/browser/modules/excel/utils/ooxml-paths.js +206 -9
  75. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  76. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  77. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  78. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  79. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  80. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  81. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  82. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  83. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  84. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  85. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  86. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  87. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  88. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  89. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  90. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  91. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  92. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  93. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  94. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  95. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  96. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  97. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  98. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  99. package/dist/browser/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  100. package/dist/browser/modules/excel/utils/ooxml-validator/context.js +191 -0
  101. package/dist/browser/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  102. package/dist/browser/modules/excel/utils/ooxml-validator/index.js +102 -0
  103. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  104. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  105. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  106. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  107. package/dist/browser/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  108. package/dist/browser/modules/excel/utils/ooxml-validator/types.js +12 -0
  109. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  110. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  111. package/dist/browser/modules/excel/workbook.browser.d.ts +248 -30
  112. package/dist/browser/modules/excel/workbook.browser.js +966 -31
  113. package/dist/browser/modules/excel/workbook.d.ts +43 -0
  114. package/dist/browser/modules/excel/workbook.js +48 -0
  115. package/dist/browser/modules/excel/worksheet.d.ts +157 -3
  116. package/dist/browser/modules/excel/worksheet.js +394 -35
  117. package/dist/browser/modules/excel/xlsx/rel-type.d.ts +40 -0
  118. package/dist/browser/modules/excel/xlsx/rel-type.js +41 -1
  119. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  120. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  121. package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  122. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  123. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  124. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  125. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  126. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  127. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  128. package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  129. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  130. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  131. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  132. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  133. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  134. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  135. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  136. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  137. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  138. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  139. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  140. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  141. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  142. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  143. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  144. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  145. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  146. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  147. package/dist/browser/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  148. package/dist/browser/modules/excel/xlsx/xform/xsd-values.js +101 -0
  149. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  150. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +4422 -78
  151. package/dist/browser/modules/pdf/builder/document-builder.d.ts +74 -0
  152. package/dist/browser/modules/pdf/builder/document-builder.js +507 -2
  153. package/dist/browser/modules/pdf/builder/pdf-editor.js +48 -3
  154. package/dist/browser/modules/pdf/excel-bridge.d.ts +69 -0
  155. package/dist/browser/modules/pdf/excel-bridge.js +683 -12
  156. package/dist/browser/modules/pdf/font/font-manager.d.ts +25 -0
  157. package/dist/browser/modules/pdf/font/font-manager.js +39 -0
  158. package/dist/browser/modules/pdf/index.d.ts +5 -2
  159. package/dist/browser/modules/pdf/index.js +3 -1
  160. package/dist/browser/modules/pdf/render/chart-surface.d.ts +33 -0
  161. package/dist/browser/modules/pdf/render/chart-surface.js +200 -0
  162. package/dist/browser/modules/pdf/render/layout-engine.d.ts +22 -1
  163. package/dist/browser/modules/pdf/render/layout-engine.js +436 -56
  164. package/dist/browser/modules/pdf/render/page-renderer.js +169 -28
  165. package/dist/browser/modules/pdf/render/pdf-exporter.js +117 -7
  166. package/dist/browser/modules/pdf/types.d.ts +227 -23
  167. package/dist/browser/modules/pdf/types.js +4 -0
  168. package/dist/browser/modules/pdf/word-bridge.d.ts +47 -0
  169. package/dist/browser/modules/pdf/word-bridge.js +304 -0
  170. package/dist/browser/modules/word/constants.d.ts +179 -0
  171. package/dist/browser/modules/word/constants.js +231 -0
  172. package/dist/browser/modules/word/content-types.d.ts +27 -0
  173. package/dist/browser/modules/word/content-types.js +53 -0
  174. package/dist/browser/modules/word/digital-signatures.d.ts +87 -0
  175. package/dist/browser/modules/word/digital-signatures.js +134 -0
  176. package/dist/browser/modules/word/document.d.ts +728 -0
  177. package/dist/browser/modules/word/document.js +1795 -0
  178. package/dist/browser/modules/word/docx-packager.d.ts +14 -0
  179. package/dist/browser/modules/word/docx-packager.js +822 -0
  180. package/dist/browser/modules/word/docx-reader.d.ts +11 -0
  181. package/dist/browser/modules/word/docx-reader.js +4929 -0
  182. package/dist/browser/modules/word/encryption.d.ts +102 -0
  183. package/dist/browser/modules/word/encryption.js +274 -0
  184. package/dist/browser/modules/word/errors.d.ts +49 -0
  185. package/dist/browser/modules/word/errors.js +68 -0
  186. package/dist/browser/modules/word/font-obfuscation.d.ts +31 -0
  187. package/dist/browser/modules/word/font-obfuscation.js +83 -0
  188. package/dist/browser/modules/word/html-renderer.d.ts +38 -0
  189. package/dist/browser/modules/word/html-renderer.js +782 -0
  190. package/dist/browser/modules/word/index.base.d.ts +19 -0
  191. package/dist/browser/modules/word/index.base.js +51 -0
  192. package/dist/browser/modules/word/index.browser.d.ts +4 -0
  193. package/dist/browser/modules/word/index.browser.js +4 -0
  194. package/dist/browser/modules/word/index.d.ts +4 -0
  195. package/dist/browser/modules/word/index.js +4 -0
  196. package/dist/browser/modules/word/internal-utils.d.ts +23 -0
  197. package/dist/browser/modules/word/internal-utils.js +54 -0
  198. package/dist/browser/modules/word/relationships.d.ts +31 -0
  199. package/dist/browser/modules/word/relationships.js +56 -0
  200. package/dist/browser/modules/word/types.d.ts +2325 -0
  201. package/dist/browser/modules/word/types.js +10 -0
  202. package/dist/browser/modules/word/units.d.ts +49 -0
  203. package/dist/browser/modules/word/units.js +111 -0
  204. package/dist/browser/modules/word/writers/chart-writer.d.ts +10 -0
  205. package/dist/browser/modules/word/writers/chart-writer.js +385 -0
  206. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +9 -0
  207. package/dist/browser/modules/word/writers/checkbox-writer.js +42 -0
  208. package/dist/browser/modules/word/writers/comment-writer.d.ts +15 -0
  209. package/dist/browser/modules/word/writers/comment-writer.js +70 -0
  210. package/dist/browser/modules/word/writers/document-writer.d.ts +16 -0
  211. package/dist/browser/modules/word/writers/document-writer.js +461 -0
  212. package/dist/browser/modules/word/writers/footnote-writer.d.ts +11 -0
  213. package/dist/browser/modules/word/writers/footnote-writer.js +72 -0
  214. package/dist/browser/modules/word/writers/header-footer-writer.d.ts +13 -0
  215. package/dist/browser/modules/word/writers/header-footer-writer.js +129 -0
  216. package/dist/browser/modules/word/writers/image-writer.d.ts +10 -0
  217. package/dist/browser/modules/word/writers/image-writer.js +185 -0
  218. package/dist/browser/modules/word/writers/math-writer.d.ts +9 -0
  219. package/dist/browser/modules/word/writers/math-writer.js +428 -0
  220. package/dist/browser/modules/word/writers/numbering-writer.d.ts +10 -0
  221. package/dist/browser/modules/word/writers/numbering-writer.js +125 -0
  222. package/dist/browser/modules/word/writers/paragraph-writer.d.ts +13 -0
  223. package/dist/browser/modules/word/writers/paragraph-writer.js +516 -0
  224. package/dist/browser/modules/word/writers/parts-writer.d.ts +26 -0
  225. package/dist/browser/modules/word/writers/parts-writer.js +660 -0
  226. package/dist/browser/modules/word/writers/run-writer.d.ts +15 -0
  227. package/dist/browser/modules/word/writers/run-writer.js +649 -0
  228. package/dist/browser/modules/word/writers/section-writer.d.ts +10 -0
  229. package/dist/browser/modules/word/writers/section-writer.js +238 -0
  230. package/dist/browser/modules/word/writers/styles-writer.d.ts +10 -0
  231. package/dist/browser/modules/word/writers/styles-writer.js +242 -0
  232. package/dist/browser/modules/word/writers/table-writer.d.ts +10 -0
  233. package/dist/browser/modules/word/writers/table-writer.js +503 -0
  234. package/dist/browser/modules/word/writers/textbox-writer.d.ts +9 -0
  235. package/dist/browser/modules/word/writers/textbox-writer.js +53 -0
  236. package/dist/browser/modules/word/writers/toc-writer.d.ts +9 -0
  237. package/dist/browser/modules/word/writers/toc-writer.js +79 -0
  238. package/dist/browser/modules/xml/encode.d.ts +56 -7
  239. package/dist/browser/modules/xml/encode.js +157 -11
  240. package/dist/cjs/index.js +13 -2
  241. package/dist/cjs/modules/excel/chart/cache-populator.js +1178 -0
  242. package/dist/cjs/modules/excel/chart/chart-api.js +371 -0
  243. package/dist/cjs/modules/excel/chart/chart-builder.js +2440 -0
  244. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +907 -0
  245. package/dist/cjs/modules/excel/chart/chart-ex-parser.js +1208 -0
  246. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +5364 -0
  247. package/dist/cjs/modules/excel/chart/chart-ex-types.js +12 -0
  248. package/dist/cjs/modules/excel/chart/chart-images.js +366 -0
  249. package/dist/cjs/modules/excel/chart/chart-presets.js +184 -0
  250. package/dist/cjs/modules/excel/chart/chart-renderer.js +6450 -0
  251. package/dist/cjs/modules/excel/chart/chart-sidecar.js +433 -0
  252. package/dist/cjs/modules/excel/chart/chart-utils.js +845 -0
  253. package/dist/cjs/modules/excel/chart/chart.js +1324 -0
  254. package/dist/cjs/modules/excel/chart/glyph-rasterizer.js +664 -0
  255. package/dist/cjs/modules/excel/chart/index.js +101 -0
  256. package/dist/cjs/modules/excel/chart/install.js +95 -0
  257. package/dist/cjs/modules/excel/chart/shape-properties.js +1577 -0
  258. package/dist/cjs/modules/excel/chart/stroke-font.js +1559 -0
  259. package/dist/cjs/modules/excel/chart/topojson.js +239 -0
  260. package/dist/cjs/modules/excel/chart/types.js +9 -0
  261. package/dist/cjs/modules/excel/chart-host-registry.js +96 -0
  262. package/dist/cjs/modules/excel/chartsheet.js +199 -0
  263. package/dist/cjs/modules/excel/defined-names.js +44 -4
  264. package/dist/cjs/modules/excel/errors.js +11 -1
  265. package/dist/cjs/modules/excel/form-control.js +17 -0
  266. package/dist/cjs/modules/excel/image.js +12 -2
  267. package/dist/cjs/modules/excel/pivot-chart.js +56 -0
  268. package/dist/cjs/modules/excel/pivot-table.js +35 -0
  269. package/dist/cjs/modules/excel/range.js +5 -1
  270. package/dist/cjs/modules/excel/sparkline/index.js +23 -0
  271. package/dist/cjs/modules/excel/sparkline/sparkline.js +756 -0
  272. package/dist/cjs/modules/excel/stream/worksheet-writer.js +3 -2
  273. package/dist/cjs/modules/excel/table.js +42 -6
  274. package/dist/cjs/modules/excel/utils/address.js +29 -0
  275. package/dist/cjs/modules/excel/utils/drawing-utils.js +11 -6
  276. package/dist/cjs/modules/excel/utils/guid.js +38 -0
  277. package/dist/cjs/modules/excel/utils/ooxml-paths.js +246 -9
  278. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +103 -0
  279. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart.js +2128 -0
  280. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chartsheet.js +29 -0
  281. package/dist/cjs/modules/excel/utils/ooxml-validator/check-content-types.js +184 -0
  282. package/dist/cjs/modules/excel/utils/ooxml-validator/check-drawing.js +270 -0
  283. package/dist/cjs/modules/excel/utils/ooxml-validator/check-pivot.js +107 -0
  284. package/dist/cjs/modules/excel/utils/ooxml-validator/check-relationships.js +188 -0
  285. package/dist/cjs/modules/excel/utils/ooxml-validator/check-structure.js +60 -0
  286. package/dist/cjs/modules/excel/utils/ooxml-validator/check-styles.js +92 -0
  287. package/dist/cjs/modules/excel/utils/ooxml-validator/check-table.js +180 -0
  288. package/dist/cjs/modules/excel/utils/ooxml-validator/check-workbook.js +166 -0
  289. package/dist/cjs/modules/excel/utils/ooxml-validator/check-worksheet.js +572 -0
  290. package/dist/cjs/modules/excel/utils/ooxml-validator/context.js +196 -0
  291. package/dist/cjs/modules/excel/utils/ooxml-validator/index.js +105 -0
  292. package/dist/cjs/modules/excel/utils/ooxml-validator/path-utils.js +168 -0
  293. package/dist/cjs/modules/excel/utils/ooxml-validator/reporter.js +66 -0
  294. package/dist/cjs/modules/excel/utils/ooxml-validator/types.js +13 -0
  295. package/dist/cjs/modules/excel/utils/ooxml-validator/xml-utils.js +110 -0
  296. package/dist/cjs/modules/excel/workbook.browser.js +973 -38
  297. package/dist/cjs/modules/excel/workbook.js +48 -0
  298. package/dist/cjs/modules/excel/worksheet.js +393 -34
  299. package/dist/cjs/modules/excel/xlsx/rel-type.js +41 -1
  300. package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  301. package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  302. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  303. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6003 -0
  304. package/dist/cjs/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +219 -0
  305. package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +149 -10
  306. package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  307. package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  308. package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  309. package/dist/cjs/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +228 -0
  310. package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  311. package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  312. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  313. package/dist/cjs/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +444 -0
  314. package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  315. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +195 -19
  316. package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  317. package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  318. package/dist/cjs/modules/excel/xlsx/xform/xsd-values.js +106 -0
  319. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +4420 -76
  320. package/dist/cjs/modules/pdf/builder/document-builder.js +506 -1
  321. package/dist/cjs/modules/pdf/builder/pdf-editor.js +48 -3
  322. package/dist/cjs/modules/pdf/excel-bridge.js +684 -12
  323. package/dist/cjs/modules/pdf/font/font-manager.js +39 -0
  324. package/dist/cjs/modules/pdf/index.js +5 -1
  325. package/dist/cjs/modules/pdf/render/chart-surface.js +203 -0
  326. package/dist/cjs/modules/pdf/render/layout-engine.js +437 -56
  327. package/dist/cjs/modules/pdf/render/page-renderer.js +169 -28
  328. package/dist/cjs/modules/pdf/render/pdf-exporter.js +115 -5
  329. package/dist/cjs/modules/pdf/types.js +5 -0
  330. package/dist/cjs/modules/pdf/word-bridge.js +307 -0
  331. package/dist/cjs/modules/word/constants.js +234 -0
  332. package/dist/cjs/modules/word/content-types.js +57 -0
  333. package/dist/cjs/modules/word/digital-signatures.js +140 -0
  334. package/dist/cjs/modules/word/document.js +1909 -0
  335. package/dist/cjs/modules/word/docx-packager.js +825 -0
  336. package/dist/cjs/modules/word/docx-reader.js +4932 -0
  337. package/dist/cjs/modules/word/encryption.js +282 -0
  338. package/dist/cjs/modules/word/errors.js +88 -0
  339. package/dist/cjs/modules/word/font-obfuscation.js +88 -0
  340. package/dist/cjs/modules/word/html-renderer.js +785 -0
  341. package/dist/cjs/modules/word/index.base.js +199 -0
  342. package/dist/cjs/modules/word/index.browser.js +20 -0
  343. package/dist/cjs/modules/word/index.js +20 -0
  344. package/dist/cjs/modules/word/internal-utils.js +59 -0
  345. package/dist/cjs/modules/word/relationships.js +60 -0
  346. package/dist/cjs/modules/word/types.js +11 -0
  347. package/dist/cjs/modules/word/units.js +135 -0
  348. package/dist/cjs/modules/word/writers/chart-writer.js +388 -0
  349. package/dist/cjs/modules/word/writers/checkbox-writer.js +45 -0
  350. package/dist/cjs/modules/word/writers/comment-writer.js +74 -0
  351. package/dist/cjs/modules/word/writers/document-writer.js +465 -0
  352. package/dist/cjs/modules/word/writers/footnote-writer.js +76 -0
  353. package/dist/cjs/modules/word/writers/header-footer-writer.js +134 -0
  354. package/dist/cjs/modules/word/writers/image-writer.js +188 -0
  355. package/dist/cjs/modules/word/writers/math-writer.js +431 -0
  356. package/dist/cjs/modules/word/writers/numbering-writer.js +128 -0
  357. package/dist/cjs/modules/word/writers/paragraph-writer.js +521 -0
  358. package/dist/cjs/modules/word/writers/parts-writer.js +671 -0
  359. package/dist/cjs/modules/word/writers/run-writer.js +655 -0
  360. package/dist/cjs/modules/word/writers/section-writer.js +241 -0
  361. package/dist/cjs/modules/word/writers/styles-writer.js +245 -0
  362. package/dist/cjs/modules/word/writers/table-writer.js +506 -0
  363. package/dist/cjs/modules/word/writers/textbox-writer.js +56 -0
  364. package/dist/cjs/modules/word/writers/toc-writer.js +82 -0
  365. package/dist/cjs/modules/xml/encode.js +158 -11
  366. package/dist/esm/index.browser.js +20 -2
  367. package/dist/esm/index.js +9 -1
  368. package/dist/esm/modules/excel/chart/cache-populator.js +1171 -0
  369. package/dist/esm/modules/excel/chart/chart-api.js +364 -0
  370. package/dist/esm/modules/excel/chart/chart-builder.js +2432 -0
  371. package/dist/esm/modules/excel/chart/chart-ex-builder.js +903 -0
  372. package/dist/esm/modules/excel/chart/chart-ex-parser.js +1205 -0
  373. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +5352 -0
  374. package/dist/esm/modules/excel/chart/chart-ex-types.js +11 -0
  375. package/dist/esm/modules/excel/chart/chart-images.js +363 -0
  376. package/dist/esm/modules/excel/chart/chart-presets.js +179 -0
  377. package/dist/esm/modules/excel/chart/chart-renderer.js +6440 -0
  378. package/dist/esm/modules/excel/chart/chart-sidecar.js +427 -0
  379. package/dist/esm/modules/excel/chart/chart-utils.js +821 -0
  380. package/dist/esm/modules/excel/chart/chart.js +1320 -0
  381. package/dist/esm/modules/excel/chart/glyph-rasterizer.js +658 -0
  382. package/dist/esm/modules/excel/chart/index.js +46 -0
  383. package/dist/esm/modules/excel/chart/install.js +91 -0
  384. package/dist/esm/modules/excel/chart/shape-properties.js +1557 -0
  385. package/dist/esm/modules/excel/chart/stroke-font.js +1556 -0
  386. package/dist/esm/modules/excel/chart/topojson.js +236 -0
  387. package/dist/esm/modules/excel/chart/types.js +8 -0
  388. package/dist/esm/modules/excel/chart-host-registry.js +90 -0
  389. package/dist/esm/modules/excel/chartsheet.js +196 -0
  390. package/dist/esm/modules/excel/defined-names.js +44 -4
  391. package/dist/esm/modules/excel/errors.js +9 -0
  392. package/dist/esm/modules/excel/form-control.js +17 -0
  393. package/dist/esm/modules/excel/image.js +12 -2
  394. package/dist/esm/modules/excel/pivot-chart.js +53 -0
  395. package/dist/esm/modules/excel/pivot-table.js +35 -0
  396. package/dist/esm/modules/excel/range.js +5 -1
  397. package/dist/esm/modules/excel/sparkline/index.js +7 -0
  398. package/dist/esm/modules/excel/sparkline/sparkline.js +750 -0
  399. package/dist/esm/modules/excel/stream/worksheet-writer.js +3 -2
  400. package/dist/esm/modules/excel/table.js +42 -6
  401. package/dist/esm/modules/excel/utils/address.js +28 -0
  402. package/dist/esm/modules/excel/utils/drawing-utils.js +11 -6
  403. package/dist/esm/modules/excel/utils/guid.js +35 -0
  404. package/dist/esm/modules/excel/utils/ooxml-paths.js +206 -9
  405. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  406. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  407. package/dist/esm/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  408. package/dist/esm/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  409. package/dist/esm/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  410. package/dist/esm/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  411. package/dist/esm/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  412. package/dist/esm/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  413. package/dist/esm/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  414. package/dist/esm/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  415. package/dist/esm/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  416. package/dist/esm/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  417. package/dist/esm/modules/excel/utils/ooxml-validator/context.js +191 -0
  418. package/dist/esm/modules/excel/utils/ooxml-validator/index.js +102 -0
  419. package/dist/esm/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  420. package/dist/esm/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  421. package/dist/esm/modules/excel/utils/ooxml-validator/types.js +12 -0
  422. package/dist/esm/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  423. package/dist/esm/modules/excel/workbook.browser.js +969 -34
  424. package/dist/esm/modules/excel/workbook.js +48 -0
  425. package/dist/esm/modules/excel/worksheet.js +394 -35
  426. package/dist/esm/modules/excel/xlsx/rel-type.js +41 -1
  427. package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  428. package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  429. package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  430. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  431. package/dist/esm/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  432. package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  433. package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  434. package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  435. package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  436. package/dist/esm/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  437. package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  438. package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  439. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  440. package/dist/esm/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  441. package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  442. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  443. package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  444. package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  445. package/dist/esm/modules/excel/xlsx/xform/xsd-values.js +101 -0
  446. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +4422 -78
  447. package/dist/esm/modules/pdf/builder/document-builder.js +507 -2
  448. package/dist/esm/modules/pdf/builder/pdf-editor.js +48 -3
  449. package/dist/esm/modules/pdf/excel-bridge.js +683 -12
  450. package/dist/esm/modules/pdf/font/font-manager.js +39 -0
  451. package/dist/esm/modules/pdf/index.js +3 -1
  452. package/dist/esm/modules/pdf/render/chart-surface.js +200 -0
  453. package/dist/esm/modules/pdf/render/layout-engine.js +436 -56
  454. package/dist/esm/modules/pdf/render/page-renderer.js +169 -28
  455. package/dist/esm/modules/pdf/render/pdf-exporter.js +117 -7
  456. package/dist/esm/modules/pdf/types.js +4 -0
  457. package/dist/esm/modules/pdf/word-bridge.js +304 -0
  458. package/dist/esm/modules/word/constants.js +231 -0
  459. package/dist/esm/modules/word/content-types.js +53 -0
  460. package/dist/esm/modules/word/digital-signatures.js +134 -0
  461. package/dist/esm/modules/word/document.js +1795 -0
  462. package/dist/esm/modules/word/docx-packager.js +822 -0
  463. package/dist/esm/modules/word/docx-reader.js +4929 -0
  464. package/dist/esm/modules/word/encryption.js +274 -0
  465. package/dist/esm/modules/word/errors.js +68 -0
  466. package/dist/esm/modules/word/font-obfuscation.js +83 -0
  467. package/dist/esm/modules/word/html-renderer.js +782 -0
  468. package/dist/esm/modules/word/index.base.js +51 -0
  469. package/dist/esm/modules/word/index.browser.js +4 -0
  470. package/dist/esm/modules/word/index.js +4 -0
  471. package/dist/esm/modules/word/internal-utils.js +54 -0
  472. package/dist/esm/modules/word/relationships.js +56 -0
  473. package/dist/esm/modules/word/types.js +10 -0
  474. package/dist/esm/modules/word/units.js +111 -0
  475. package/dist/esm/modules/word/writers/chart-writer.js +385 -0
  476. package/dist/esm/modules/word/writers/checkbox-writer.js +42 -0
  477. package/dist/esm/modules/word/writers/comment-writer.js +70 -0
  478. package/dist/esm/modules/word/writers/document-writer.js +461 -0
  479. package/dist/esm/modules/word/writers/footnote-writer.js +72 -0
  480. package/dist/esm/modules/word/writers/header-footer-writer.js +129 -0
  481. package/dist/esm/modules/word/writers/image-writer.js +185 -0
  482. package/dist/esm/modules/word/writers/math-writer.js +428 -0
  483. package/dist/esm/modules/word/writers/numbering-writer.js +125 -0
  484. package/dist/esm/modules/word/writers/paragraph-writer.js +516 -0
  485. package/dist/esm/modules/word/writers/parts-writer.js +660 -0
  486. package/dist/esm/modules/word/writers/run-writer.js +649 -0
  487. package/dist/esm/modules/word/writers/section-writer.js +238 -0
  488. package/dist/esm/modules/word/writers/styles-writer.js +242 -0
  489. package/dist/esm/modules/word/writers/table-writer.js +503 -0
  490. package/dist/esm/modules/word/writers/textbox-writer.js +53 -0
  491. package/dist/esm/modules/word/writers/toc-writer.js +79 -0
  492. package/dist/esm/modules/xml/encode.js +157 -11
  493. package/dist/iife/excelts.iife.js +11789 -687
  494. package/dist/iife/excelts.iife.js.map +1 -1
  495. package/dist/iife/excelts.iife.min.js +52 -44
  496. package/dist/types/index.browser.d.ts +8 -5
  497. package/dist/types/index.d.ts +4 -2
  498. package/dist/types/modules/excel/chart/cache-populator.d.ts +49 -0
  499. package/dist/types/modules/excel/chart/chart-api.d.ts +92 -0
  500. package/dist/types/modules/excel/chart/chart-builder.d.ts +48 -0
  501. package/dist/types/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  502. package/dist/types/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  503. package/dist/types/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  504. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +531 -0
  505. package/dist/types/modules/excel/chart/chart-images.d.ts +78 -0
  506. package/dist/types/modules/excel/chart/chart-presets.d.ts +392 -0
  507. package/dist/types/modules/excel/chart/chart-renderer.d.ts +550 -0
  508. package/dist/types/modules/excel/chart/chart-sidecar.d.ts +21 -0
  509. package/dist/types/modules/excel/chart/chart-utils.d.ts +306 -0
  510. package/dist/types/modules/excel/chart/chart.d.ts +504 -0
  511. package/dist/types/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  512. package/dist/types/modules/excel/chart/index.d.ts +54 -0
  513. package/dist/types/modules/excel/chart/install.d.ts +44 -0
  514. package/dist/types/modules/excel/chart/shape-properties.d.ts +156 -0
  515. package/dist/types/modules/excel/chart/stroke-font.d.ts +36 -0
  516. package/dist/types/modules/excel/chart/topojson.d.ts +98 -0
  517. package/dist/types/modules/excel/chart/types.d.ts +2559 -0
  518. package/dist/types/modules/excel/chart-host-registry.d.ts +157 -0
  519. package/dist/types/modules/excel/chartsheet.d.ts +102 -0
  520. package/dist/types/modules/excel/defined-names.d.ts +35 -0
  521. package/dist/types/modules/excel/errors.d.ts +6 -0
  522. package/dist/types/modules/excel/form-control.d.ts +6 -0
  523. package/dist/types/modules/excel/pivot-chart.d.ts +7 -0
  524. package/dist/types/modules/excel/pivot-table.d.ts +55 -0
  525. package/dist/types/modules/excel/sparkline/index.d.ts +7 -0
  526. package/dist/types/modules/excel/sparkline/sparkline.d.ts +206 -0
  527. package/dist/types/modules/excel/types.d.ts +72 -0
  528. package/dist/types/modules/excel/utils/address.d.ts +18 -0
  529. package/dist/types/modules/excel/utils/guid.d.ts +15 -0
  530. package/dist/types/modules/excel/utils/ooxml-paths.d.ts +74 -0
  531. package/dist/types/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  532. package/dist/types/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  533. package/dist/types/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  534. package/dist/types/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  535. package/dist/types/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  536. package/dist/types/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  537. package/dist/types/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  538. package/dist/types/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  539. package/dist/types/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  540. package/dist/types/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  541. package/dist/types/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  542. package/dist/types/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  543. package/dist/types/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  544. package/dist/types/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  545. package/dist/types/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  546. package/dist/types/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  547. package/dist/types/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  548. package/dist/types/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  549. package/dist/types/modules/excel/workbook.browser.d.ts +248 -30
  550. package/dist/types/modules/excel/workbook.d.ts +43 -0
  551. package/dist/types/modules/excel/worksheet.d.ts +157 -3
  552. package/dist/types/modules/excel/xlsx/rel-type.d.ts +40 -0
  553. package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  554. package/dist/types/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  555. package/dist/types/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  556. package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  557. package/dist/types/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  558. package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  559. package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  560. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  561. package/dist/types/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  562. package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  563. package/dist/types/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  564. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  565. package/dist/types/modules/pdf/builder/document-builder.d.ts +74 -0
  566. package/dist/types/modules/pdf/excel-bridge.d.ts +69 -0
  567. package/dist/types/modules/pdf/font/font-manager.d.ts +25 -0
  568. package/dist/types/modules/pdf/index.d.ts +5 -2
  569. package/dist/types/modules/pdf/render/chart-surface.d.ts +33 -0
  570. package/dist/types/modules/pdf/render/layout-engine.d.ts +22 -1
  571. package/dist/types/modules/pdf/types.d.ts +227 -23
  572. package/dist/types/modules/pdf/word-bridge.d.ts +47 -0
  573. package/dist/types/modules/word/constants.d.ts +179 -0
  574. package/dist/types/modules/word/content-types.d.ts +27 -0
  575. package/dist/types/modules/word/digital-signatures.d.ts +87 -0
  576. package/dist/types/modules/word/document.d.ts +728 -0
  577. package/dist/types/modules/word/docx-packager.d.ts +14 -0
  578. package/dist/types/modules/word/docx-reader.d.ts +11 -0
  579. package/dist/types/modules/word/encryption.d.ts +102 -0
  580. package/dist/types/modules/word/errors.d.ts +49 -0
  581. package/dist/types/modules/word/font-obfuscation.d.ts +31 -0
  582. package/dist/types/modules/word/html-renderer.d.ts +38 -0
  583. package/dist/types/modules/word/index.base.d.ts +19 -0
  584. package/dist/types/modules/word/index.browser.d.ts +4 -0
  585. package/dist/types/modules/word/index.d.ts +4 -0
  586. package/dist/types/modules/word/internal-utils.d.ts +23 -0
  587. package/dist/types/modules/word/relationships.d.ts +31 -0
  588. package/dist/types/modules/word/types.d.ts +2325 -0
  589. package/dist/types/modules/word/units.d.ts +49 -0
  590. package/dist/types/modules/word/writers/chart-writer.d.ts +10 -0
  591. package/dist/types/modules/word/writers/checkbox-writer.d.ts +9 -0
  592. package/dist/types/modules/word/writers/comment-writer.d.ts +15 -0
  593. package/dist/types/modules/word/writers/document-writer.d.ts +16 -0
  594. package/dist/types/modules/word/writers/footnote-writer.d.ts +11 -0
  595. package/dist/types/modules/word/writers/header-footer-writer.d.ts +13 -0
  596. package/dist/types/modules/word/writers/image-writer.d.ts +10 -0
  597. package/dist/types/modules/word/writers/math-writer.d.ts +9 -0
  598. package/dist/types/modules/word/writers/numbering-writer.d.ts +10 -0
  599. package/dist/types/modules/word/writers/paragraph-writer.d.ts +13 -0
  600. package/dist/types/modules/word/writers/parts-writer.d.ts +26 -0
  601. package/dist/types/modules/word/writers/run-writer.d.ts +15 -0
  602. package/dist/types/modules/word/writers/section-writer.d.ts +10 -0
  603. package/dist/types/modules/word/writers/styles-writer.d.ts +10 -0
  604. package/dist/types/modules/word/writers/table-writer.d.ts +10 -0
  605. package/dist/types/modules/word/writers/textbox-writer.d.ts +9 -0
  606. package/dist/types/modules/word/writers/toc-writer.d.ts +9 -0
  607. package/dist/types/modules/xml/encode.d.ts +56 -7
  608. package/package.json +29 -11
  609. package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +0 -48
  610. package/dist/browser/modules/excel/utils/ooxml-validator.js +0 -493
  611. package/dist/browser/modules/excel/utils/passthrough-manager.d.ts +0 -77
  612. package/dist/browser/modules/excel/utils/passthrough-manager.js +0 -129
  613. package/dist/cjs/modules/excel/utils/ooxml-validator.js +0 -499
  614. package/dist/cjs/modules/excel/utils/passthrough-manager.js +0 -133
  615. package/dist/esm/modules/excel/utils/ooxml-validator.js +0 -493
  616. package/dist/esm/modules/excel/utils/passthrough-manager.js +0 -129
  617. package/dist/types/modules/excel/utils/ooxml-validator.d.ts +0 -48
  618. package/dist/types/modules/excel/utils/passthrough-manager.d.ts +0 -77
@@ -124,37 +124,169 @@ export interface PdfPageSetupData {
124
124
  showGridLines?: boolean;
125
125
  printArea?: string;
126
126
  }
127
+ /** Anchor range shared by embedded images and charts. */
128
+ export interface PdfAnchorRange {
129
+ tl: {
130
+ col: number;
131
+ row: number;
132
+ nativeCol?: number;
133
+ nativeRow?: number;
134
+ nativeColOff?: number;
135
+ nativeRowOff?: number;
136
+ };
137
+ br?: {
138
+ col: number;
139
+ row: number;
140
+ nativeCol?: number;
141
+ nativeRow?: number;
142
+ nativeColOff?: number;
143
+ nativeRowOff?: number;
144
+ };
145
+ /**
146
+ * Image variant uses pixels (px × 0.75 = pt).
147
+ * Chart variant uses EMU (cx / 9525 = pt).
148
+ * The layout engine picks the correct conversion via `extUnit`.
149
+ */
150
+ ext?: {
151
+ width: number;
152
+ height: number;
153
+ };
154
+ /** Unit of measure for `ext`. Defaults to "px" for backwards compatibility. */
155
+ extUnit?: "px" | "emu";
156
+ }
127
157
  /** An image embedded in a sheet. */
128
158
  export interface PdfSheetImage {
129
159
  data: Uint8Array;
130
160
  format: "jpeg" | "png";
131
- range: {
132
- tl: {
133
- col: number;
134
- row: number;
135
- nativeCol?: number;
136
- nativeRow?: number;
137
- nativeColOff?: number;
138
- nativeRowOff?: number;
139
- };
140
- br?: {
141
- col: number;
142
- row: number;
143
- nativeCol?: number;
144
- nativeRow?: number;
145
- nativeColOff?: number;
146
- nativeRowOff?: number;
147
- };
148
- ext?: {
149
- width: number;
150
- height: number;
151
- };
161
+ range: PdfAnchorRange;
162
+ }
163
+ /**
164
+ * Path operator set understood by {@link PdfChartDrawingSurface}.`drawPath`.
165
+ * Structurally compatible with `ChartPdfPathOp` from `@excel/chart` so the
166
+ * excel-bridge can forward between the two at the cast boundary.
167
+ */
168
+ export type PdfChartPathOp = {
169
+ op: "move";
170
+ x: number;
171
+ y: number;
172
+ } | {
173
+ op: "line";
174
+ x: number;
175
+ y: number;
176
+ } | {
177
+ op: "curve";
178
+ x1: number;
179
+ y1: number;
180
+ x2: number;
181
+ y2: number;
182
+ x3: number;
183
+ y3: number;
184
+ } | {
185
+ op: "close";
186
+ };
187
+ /**
188
+ * Drawing surface used by vector chart renderers when embedded in a PDF page.
189
+ *
190
+ * Structurally compatible with `ChartPdfDrawingSurface` from the Excel chart
191
+ * renderer. Declared locally in the PDF layer so the rendering pipeline does
192
+ * not need to import chart types — only `excel-bridge.ts` (the documented
193
+ * layer-crossing file) forwards real chart models to the surface.
194
+ *
195
+ * All coordinates are in **PDF points with bottom-left origin**, matching the
196
+ * convention the chart renderer emits after its internal Y-flip.
197
+ */
198
+ export interface PdfChartDrawingSurface {
199
+ drawRect(options: {
200
+ x: number;
201
+ y: number;
202
+ width: number;
203
+ height: number;
204
+ fill?: PdfColor;
205
+ stroke?: PdfColor;
206
+ lineWidth?: number;
207
+ }): unknown;
208
+ drawLine(options: {
209
+ x1: number;
210
+ y1: number;
211
+ x2: number;
212
+ y2: number;
213
+ color?: PdfColor;
214
+ lineWidth?: number;
215
+ dashPattern?: number[];
216
+ }): unknown;
217
+ drawText(text: string, options: {
218
+ x: number;
219
+ y: number;
220
+ fontSize?: number;
221
+ color?: PdfColor;
222
+ rotation?: number;
223
+ anchor?: "start" | "middle" | "end";
224
+ bold?: boolean;
225
+ italic?: boolean;
226
+ fontFamily?: string;
227
+ }): unknown;
228
+ drawCircle?(options: {
229
+ cx: number;
230
+ cy: number;
231
+ r: number;
232
+ fill?: PdfColor;
233
+ stroke?: PdfColor;
234
+ lineWidth?: number;
235
+ }): unknown;
236
+ drawPath?(ops: PdfChartPathOp[], options?: {
237
+ fill?: PdfColor;
238
+ stroke?: PdfColor;
239
+ closePath?: boolean;
240
+ lineWidth?: number;
241
+ dashPattern?: number[];
242
+ }): unknown;
243
+ }
244
+ /**
245
+ * A chart embedded in a sheet.
246
+ *
247
+ * Either provides a `drawVector` callback (preferred — selectable text,
248
+ * resolution-independent shapes) or a pre-rasterised `raster` payload that
249
+ * falls through to the image XObject pipeline. Exactly one of the two should
250
+ * be populated; if both are present the renderer prefers `drawVector`.
251
+ */
252
+ export interface PdfSheetChart {
253
+ range: PdfAnchorRange;
254
+ /**
255
+ * Vector renderer. Bound in `excel-bridge.ts` over the concrete chart
256
+ * model; the PDF pipeline invokes it with a surface that adapts the
257
+ * current page's content stream. `rect` is in PDF page coordinates
258
+ * (bottom-left origin).
259
+ */
260
+ drawVector?: (surface: PdfChartDrawingSurface, rect: {
261
+ x: number;
262
+ y: number;
263
+ width: number;
264
+ height: number;
265
+ }) => void;
266
+ /**
267
+ * Raster fallback used when the chart has no vector path (currently only
268
+ * ChartEx layouts not in the `VECTOR_PDF_CHART_EX_LAYOUT_IDS` whitelist).
269
+ */
270
+ raster?: {
271
+ data: Uint8Array;
272
+ format: "png" | "jpeg";
152
273
  };
153
274
  }
154
- /** A single sheet in the PDF input model. */
275
+ /** A single cell-grid sheet in the PDF input model. */
155
276
  export interface PdfSheetData {
277
+ /**
278
+ * Discriminator. Optional for backwards compatibility — when absent the
279
+ * exporter treats the sheet as a regular cell-grid worksheet.
280
+ */
281
+ kind?: "worksheet";
156
282
  name: string;
157
283
  state?: "visible" | "hidden" | "veryHidden";
284
+ /**
285
+ * Tab order from the source workbook. Used by `excelToPdf` to interleave
286
+ * worksheets and chartsheets in the same order Excel would display them.
287
+ * Optional; when absent the sheet keeps its array position.
288
+ */
289
+ orderNo?: number;
158
290
  /** Data bounds (1-based) */
159
291
  bounds: {
160
292
  top: number;
@@ -175,7 +307,54 @@ export interface PdfSheetData {
175
307
  colBreaks?: number[];
176
308
  /** Embedded images */
177
309
  images?: PdfSheetImage[];
310
+ /** Embedded charts (classic + ChartEx) */
311
+ charts?: PdfSheetChart[];
178
312
  }
313
+ /**
314
+ * A chartsheet — a single-chart "sheet" with no cell grid.
315
+ *
316
+ * Excel stores chartsheets under `xl/chartsheets/sheetN.xml`, parallel to
317
+ * the worksheet family. A chartsheet has no rows/columns/cells; the entire
318
+ * printed canvas is one chart. The PDF pipeline honours that semantic: a
319
+ * chartsheet produces exactly one LayoutPage with a single chart filling
320
+ * the content area (below the optional header, above the optional footer).
321
+ */
322
+ export interface PdfChartsheetData {
323
+ kind: "chartsheet";
324
+ name: string;
325
+ state?: "visible" | "hidden" | "veryHidden";
326
+ /** Tab order — used to interleave with worksheets. See {@link PdfSheetData.orderNo}. */
327
+ orderNo?: number;
328
+ /**
329
+ * Page orientation override. Excel's chartsheets default to landscape
330
+ * (wider canvas suits most charts) and we keep that default when this
331
+ * field is absent.
332
+ */
333
+ orientation?: "portrait" | "landscape";
334
+ /** The single chart that fills the sheet canvas. */
335
+ chart: {
336
+ drawVector?: PdfSheetChart["drawVector"];
337
+ raster?: PdfSheetChart["raster"];
338
+ };
339
+ /**
340
+ * Optional page setup overrides. Only a subset of the worksheet
341
+ * `PdfPageSetupData` is meaningful here (chartsheets don't have
342
+ * gridlines, print titles, row/col breaks, etc.). The renderer reads
343
+ * `orientation` off `this.orientation` first, then falls back to
344
+ * `pageSetup?.orientation`.
345
+ */
346
+ pageSetup?: PdfPageSetupData;
347
+ }
348
+ /**
349
+ * Union of sheet shapes accepted by {@link PdfWorkbook.sheets}.
350
+ *
351
+ * Named `PdfWorkbookSheet` (not `PdfSheet`) because `PdfSheet` already
352
+ * denotes a different user-facing input type in `pdf.ts` — the simple
353
+ * "pass me a 2D array or a single sheet description" shape.
354
+ */
355
+ export type PdfWorkbookSheet = PdfSheetData | PdfChartsheetData;
356
+ /** Type guard distinguishing chartsheets from cell-grid worksheets. */
357
+ export declare function isPdfChartsheet(sheet: PdfWorkbookSheet): sheet is PdfChartsheetData;
179
358
  /**
180
359
  * A workbook data structure for PDF generation.
181
360
  * This is a plain data object — not tied to the Excel module.
@@ -184,7 +363,7 @@ export interface PdfWorkbook {
184
363
  title?: string;
185
364
  creator?: string;
186
365
  subject?: string;
187
- sheets: PdfSheetData[];
366
+ sheets: PdfWorkbookSheet[];
188
367
  }
189
368
  /**
190
369
  * Standard page sizes in PDF points (1 point = 1/72 inch).
@@ -750,6 +929,8 @@ export interface LayoutPage {
750
929
  rowHeights: number[];
751
930
  /** Images to render on this page */
752
931
  images: LayoutImage[];
932
+ /** Charts to render on this page */
933
+ charts: LayoutChart[];
753
934
  /** Scale factor applied to this page (for fitToPage) */
754
935
  scaleFactor: number;
755
936
  }
@@ -764,3 +945,26 @@ export interface LayoutImage {
764
945
  /** Rectangle in page coordinates (PDF points, origin bottom-left) */
765
946
  rect: PdfRect;
766
947
  }
948
+ /**
949
+ * A positioned chart on a PDF page.
950
+ *
951
+ * Either `drawVector` (preferred) or `raster` must be provided; the exporter
952
+ * prefers `drawVector` when both are present so the PDF keeps selectable
953
+ * text and resolution-independent shapes.
954
+ */
955
+ export interface LayoutChart {
956
+ /** Rectangle in page coordinates (PDF points, origin bottom-left) */
957
+ rect: PdfRect;
958
+ /** Vector rendering callback, if the chart can be drawn as PDF geometry. */
959
+ drawVector?: (surface: PdfChartDrawingSurface, rect: {
960
+ x: number;
961
+ y: number;
962
+ width: number;
963
+ height: number;
964
+ }) => void;
965
+ /** Raster fallback for charts that have no vector path. */
966
+ raster?: {
967
+ data: Uint8Array;
968
+ format: "png" | "jpeg";
969
+ };
970
+ }
@@ -23,6 +23,10 @@ export const PdfCellType = {
23
23
  Hyperlink: 8,
24
24
  Merge: 9
25
25
  };
26
+ /** Type guard distinguishing chartsheets from cell-grid worksheets. */
27
+ export function isPdfChartsheet(sheet) {
28
+ return sheet.kind === "chartsheet";
29
+ }
26
30
  /**
27
31
  * Predefined page sizes.
28
32
  */
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Word-to-PDF Bridge
3
+ *
4
+ * Converts a Word document (DocxDocument) to PDF.
5
+ * Like excel-bridge.ts, this is the ONLY file in the PDF module that imports
6
+ * from @word.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { readDocx } from "excelts/word";
11
+ * import { docxToPdf } from "excelts/pdf";
12
+ *
13
+ * const doc = await readDocx(docxBytes);
14
+ * const pdfBytes = await docxToPdf(doc);
15
+ * ```
16
+ *
17
+ * Note: This is a simple flow-based renderer. For high-fidelity output,
18
+ * consider using Microsoft Word or LibreOffice.
19
+ */
20
+ import type { DocxDocument } from "../word/types.js";
21
+ /** Options for DOCX → PDF conversion. */
22
+ export interface DocxToPdfOptions {
23
+ /** Page width in points (default: from document sectPr or 612 US Letter). */
24
+ readonly pageWidth?: number;
25
+ /** Page height in points (default: from document sectPr or 792 US Letter). */
26
+ readonly pageHeight?: number;
27
+ /** Top margin in points (default: from sectPr or 72). */
28
+ readonly marginTop?: number;
29
+ /** Bottom margin in points (default: from sectPr or 72). */
30
+ readonly marginBottom?: number;
31
+ /** Left margin in points (default: from sectPr or 72). */
32
+ readonly marginLeft?: number;
33
+ /** Right margin in points (default: from sectPr or 72). */
34
+ readonly marginRight?: number;
35
+ /** Default font family (default: "Times-Roman"). */
36
+ readonly defaultFont?: string;
37
+ /** Default font size in points (default: 11). */
38
+ readonly defaultFontSize?: number;
39
+ }
40
+ /**
41
+ * Convert a DocxDocument to PDF bytes.
42
+ *
43
+ * @param doc - The DOCX document model (from readDocx or DocumentBuilder.build()).
44
+ * @param options - PDF rendering options.
45
+ * @returns Promise of PDF bytes.
46
+ */
47
+ export declare function docxToPdf(doc: DocxDocument, options?: DocxToPdfOptions): Promise<Uint8Array>;
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Word-to-PDF Bridge
3
+ *
4
+ * Converts a Word document (DocxDocument) to PDF.
5
+ * Like excel-bridge.ts, this is the ONLY file in the PDF module that imports
6
+ * from @word.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { readDocx } from "excelts/word";
11
+ * import { docxToPdf } from "excelts/pdf";
12
+ *
13
+ * const doc = await readDocx(docxBytes);
14
+ * const pdfBytes = await docxToPdf(doc);
15
+ * ```
16
+ *
17
+ * Note: This is a simple flow-based renderer. For high-fidelity output,
18
+ * consider using Microsoft Word or LibreOffice.
19
+ */
20
+ import { PdfDocumentBuilder } from "./builder/document-builder.js";
21
+ /**
22
+ * Convert a DocxDocument to PDF bytes.
23
+ *
24
+ * @param doc - The DOCX document model (from readDocx or DocumentBuilder.build()).
25
+ * @param options - PDF rendering options.
26
+ * @returns Promise of PDF bytes.
27
+ */
28
+ export async function docxToPdf(doc, options) {
29
+ const opts = {
30
+ pageWidth: options?.pageWidth ?? 612,
31
+ pageHeight: options?.pageHeight ?? 792,
32
+ marginTop: options?.marginTop ?? 72,
33
+ marginBottom: options?.marginBottom ?? 72,
34
+ marginLeft: options?.marginLeft ?? 72,
35
+ marginRight: options?.marginRight ?? 72,
36
+ defaultFont: options?.defaultFont ?? "Times-Roman",
37
+ defaultFontSize: options?.defaultFontSize ?? 11
38
+ };
39
+ // Use section properties if available
40
+ const sectProps = doc.sectionProperties;
41
+ if (sectProps?.pageSize && !options?.pageWidth) {
42
+ opts.pageWidth = twipsToPt(sectProps.pageSize.width);
43
+ opts.pageHeight = twipsToPt(sectProps.pageSize.height);
44
+ if (sectProps.pageSize.orientation === "landscape") {
45
+ [opts.pageWidth, opts.pageHeight] = [opts.pageHeight, opts.pageWidth];
46
+ }
47
+ }
48
+ if (sectProps?.margins && !options?.marginTop) {
49
+ opts.marginTop = twipsToPt(sectProps.margins.top);
50
+ opts.marginBottom = twipsToPt(sectProps.margins.bottom);
51
+ opts.marginLeft = twipsToPt(sectProps.margins.left);
52
+ opts.marginRight = twipsToPt(sectProps.margins.right);
53
+ }
54
+ const builder = new PdfDocumentBuilder();
55
+ if (doc.coreProperties?.title || doc.coreProperties?.creator) {
56
+ builder.setMetadata({
57
+ title: doc.coreProperties?.title,
58
+ author: doc.coreProperties?.creator,
59
+ subject: doc.coreProperties?.subject
60
+ });
61
+ }
62
+ const state = {
63
+ builder,
64
+ opts,
65
+ doc,
66
+ rIdToImage: buildImageMap(doc),
67
+ currentPage: null,
68
+ cursorY: 0,
69
+ currentPageIndex: 0
70
+ };
71
+ newPage(state);
72
+ for (const item of doc.body) {
73
+ renderBodyContent(state, item);
74
+ }
75
+ return builder.build();
76
+ }
77
+ function newPage(state) {
78
+ state.currentPage = state.builder.addPage({
79
+ width: state.opts.pageWidth,
80
+ height: state.opts.pageHeight
81
+ });
82
+ state.cursorY = state.opts.pageHeight - state.opts.marginTop;
83
+ state.currentPageIndex++;
84
+ }
85
+ function ensureSpace(state, needed) {
86
+ if (state.cursorY - needed < state.opts.marginBottom) {
87
+ newPage(state);
88
+ }
89
+ }
90
+ function renderBodyContent(state, item) {
91
+ if (!("type" in item)) {
92
+ return;
93
+ }
94
+ switch (item.type) {
95
+ case "paragraph":
96
+ renderParagraphPdf(state, item);
97
+ break;
98
+ case "table":
99
+ renderTablePdf(state, item);
100
+ break;
101
+ case "math":
102
+ renderTextAtCursor(state, "[equation]", { italic: true });
103
+ break;
104
+ case "chart":
105
+ renderTextAtCursor(state, `[${item.chart.type} chart]`, { italic: true });
106
+ break;
107
+ default:
108
+ break;
109
+ }
110
+ }
111
+ function renderParagraphPdf(state, para) {
112
+ const props = para.properties;
113
+ const spacing = props?.spacing;
114
+ if (spacing?.before) {
115
+ state.cursorY -= twipsToPt(spacing.before);
116
+ }
117
+ const text = collectText(para);
118
+ if (!text.trim()) {
119
+ state.cursorY -= state.opts.defaultFontSize * 1.2;
120
+ return;
121
+ }
122
+ // Determine font size and weight based on style
123
+ let fontSize = state.opts.defaultFontSize;
124
+ let bold = false;
125
+ const styleId = props?.style?.toLowerCase() ?? "";
126
+ if (styleId === "heading1" || styleId === "title") {
127
+ fontSize = 24;
128
+ bold = true;
129
+ }
130
+ else if (styleId === "heading2") {
131
+ fontSize = 18;
132
+ bold = true;
133
+ }
134
+ else if (styleId === "heading3") {
135
+ fontSize = 14;
136
+ bold = true;
137
+ }
138
+ else if (styleId === "heading4") {
139
+ fontSize = 12;
140
+ bold = true;
141
+ }
142
+ let leftIndent = 0;
143
+ if (props?.indent?.left !== undefined) {
144
+ leftIndent = twipsToPt(props.indent.left);
145
+ }
146
+ const x = state.opts.marginLeft + leftIndent;
147
+ const availableWidth = state.opts.pageWidth - state.opts.marginLeft - state.opts.marginRight - leftIndent;
148
+ const lineHeight = fontSize * 1.2;
149
+ const estimatedLines = Math.max(1, Math.ceil((text.length * fontSize * 0.5) / availableWidth));
150
+ ensureSpace(state, estimatedLines * lineHeight);
151
+ // Simple approach: render entire paragraph as one text block
152
+ state.currentPage.drawText(text, {
153
+ x,
154
+ y: state.cursorY - fontSize,
155
+ fontSize,
156
+ bold,
157
+ maxWidth: availableWidth,
158
+ lineHeight: 1.2
159
+ });
160
+ state.cursorY -= estimatedLines * lineHeight;
161
+ if (spacing?.after) {
162
+ state.cursorY -= twipsToPt(spacing.after);
163
+ }
164
+ else {
165
+ state.cursorY -= 6;
166
+ }
167
+ }
168
+ function collectText(para) {
169
+ let text = "";
170
+ for (const child of para.children) {
171
+ const run = childToRun(child);
172
+ if (run) {
173
+ text += runToText(run);
174
+ }
175
+ }
176
+ return text;
177
+ }
178
+ function childToRun(child) {
179
+ if ("content" in child && !("type" in child)) {
180
+ return child;
181
+ }
182
+ if ("type" in child) {
183
+ const typed = child;
184
+ if (typed.type === "hyperlink" && typed.children) {
185
+ for (const c of typed.children) {
186
+ if ("content" in c && !("type" in c)) {
187
+ return c;
188
+ }
189
+ }
190
+ }
191
+ else if (typed.type === "insertedRun" ||
192
+ typed.type === "deletedRun" ||
193
+ typed.type === "movedFromRun" ||
194
+ typed.type === "movedToRun") {
195
+ return typed.run;
196
+ }
197
+ }
198
+ return undefined;
199
+ }
200
+ function runToText(run) {
201
+ let text = "";
202
+ for (const c of run.content) {
203
+ switch (c.type) {
204
+ case "text":
205
+ text += c.text;
206
+ break;
207
+ case "tab":
208
+ text += "\t";
209
+ break;
210
+ case "break":
211
+ case "carriageReturn":
212
+ text += "\n";
213
+ break;
214
+ case "noBreakHyphen":
215
+ text += "\u2011";
216
+ break;
217
+ case "symbol":
218
+ try {
219
+ text += String.fromCodePoint(parseInt(c.char, 16));
220
+ }
221
+ catch {
222
+ // Invalid symbol code - skip
223
+ }
224
+ break;
225
+ case "field":
226
+ if (c.cachedValue) {
227
+ text += c.cachedValue;
228
+ }
229
+ break;
230
+ }
231
+ }
232
+ return text;
233
+ }
234
+ function renderTablePdf(state, table) {
235
+ const pageWidth = state.opts.pageWidth - state.opts.marginLeft - state.opts.marginRight;
236
+ const numCols = Math.max(...table.rows.map(r => r.cells.length));
237
+ const defaultColWidth = pageWidth / numCols;
238
+ const rowHeight = 20;
239
+ for (const row of table.rows) {
240
+ ensureSpace(state, rowHeight);
241
+ let x = state.opts.marginLeft;
242
+ const rowTop = state.cursorY;
243
+ const rowBottom = state.cursorY - rowHeight;
244
+ for (const cell of row.cells) {
245
+ const span = cell.properties?.gridSpan ?? 1;
246
+ const cellWidth = defaultColWidth * span;
247
+ state.currentPage.drawRect({
248
+ x,
249
+ y: rowBottom,
250
+ width: cellWidth,
251
+ height: rowHeight,
252
+ stroke: { r: 0, g: 0, b: 0 },
253
+ lineWidth: 0.5
254
+ });
255
+ const cellText = getCellText(cell);
256
+ if (cellText) {
257
+ state.currentPage.drawText(cellText, {
258
+ x: x + 4,
259
+ y: rowTop - 14,
260
+ fontSize: 10,
261
+ maxWidth: cellWidth - 8
262
+ });
263
+ }
264
+ x += cellWidth;
265
+ }
266
+ state.cursorY = rowBottom;
267
+ }
268
+ state.cursorY -= 6;
269
+ }
270
+ function getCellText(cell) {
271
+ let text = "";
272
+ for (const item of cell.content) {
273
+ if ("type" in item && item.type === "paragraph") {
274
+ text += collectText(item) + " ";
275
+ }
276
+ }
277
+ return text.trim();
278
+ }
279
+ function twipsToPt(twips) {
280
+ return twips / 20;
281
+ }
282
+ function renderTextAtCursor(state, text, opts) {
283
+ const fontSize = opts?.fontSize ?? state.opts.defaultFontSize;
284
+ ensureSpace(state, fontSize * 1.2);
285
+ state.currentPage.drawText(text, {
286
+ x: state.opts.marginLeft,
287
+ y: state.cursorY - fontSize,
288
+ fontSize,
289
+ bold: opts?.bold,
290
+ italic: opts?.italic
291
+ });
292
+ state.cursorY -= fontSize * 1.2;
293
+ }
294
+ function buildImageMap(doc) {
295
+ const map = new Map();
296
+ if (doc.images) {
297
+ for (const img of doc.images) {
298
+ if (img.rId) {
299
+ map.set(img.rId, img);
300
+ }
301
+ }
302
+ }
303
+ return map;
304
+ }