@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.
- package/dist/browser/index.browser.d.ts +8 -5
- package/dist/browser/index.browser.js +19 -1
- package/dist/browser/index.d.ts +4 -2
- package/dist/browser/index.js +9 -1
- package/dist/browser/modules/excel/chart/cache-populator.d.ts +49 -0
- package/dist/browser/modules/excel/chart/cache-populator.js +1171 -0
- package/dist/browser/modules/excel/chart/chart-api.d.ts +92 -0
- package/dist/browser/modules/excel/chart/chart-api.js +364 -0
- package/dist/browser/modules/excel/chart/chart-builder.d.ts +48 -0
- package/dist/browser/modules/excel/chart/chart-builder.js +2432 -0
- package/dist/browser/modules/excel/chart/chart-ex-builder.d.ts +36 -0
- package/dist/browser/modules/excel/chart/chart-ex-builder.js +903 -0
- package/dist/browser/modules/excel/chart/chart-ex-parser.d.ts +8 -0
- package/dist/browser/modules/excel/chart/chart-ex-parser.js +1205 -0
- package/dist/browser/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
- package/dist/browser/modules/excel/chart/chart-ex-renderer.js +5352 -0
- package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +531 -0
- package/dist/browser/modules/excel/chart/chart-ex-types.js +11 -0
- package/dist/browser/modules/excel/chart/chart-images.d.ts +78 -0
- package/dist/browser/modules/excel/chart/chart-images.js +363 -0
- package/dist/browser/modules/excel/chart/chart-presets.d.ts +392 -0
- package/dist/browser/modules/excel/chart/chart-presets.js +179 -0
- package/dist/browser/modules/excel/chart/chart-renderer.d.ts +550 -0
- package/dist/browser/modules/excel/chart/chart-renderer.js +6440 -0
- package/dist/browser/modules/excel/chart/chart-sidecar.d.ts +21 -0
- package/dist/browser/modules/excel/chart/chart-sidecar.js +427 -0
- package/dist/browser/modules/excel/chart/chart-utils.d.ts +306 -0
- package/dist/browser/modules/excel/chart/chart-utils.js +821 -0
- package/dist/browser/modules/excel/chart/chart.d.ts +504 -0
- package/dist/browser/modules/excel/chart/chart.js +1320 -0
- package/dist/browser/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
- package/dist/browser/modules/excel/chart/glyph-rasterizer.js +658 -0
- package/dist/browser/modules/excel/chart/index.d.ts +54 -0
- package/dist/browser/modules/excel/chart/index.js +46 -0
- package/dist/browser/modules/excel/chart/install.d.ts +44 -0
- package/dist/browser/modules/excel/chart/install.js +91 -0
- package/dist/browser/modules/excel/chart/shape-properties.d.ts +156 -0
- package/dist/browser/modules/excel/chart/shape-properties.js +1557 -0
- package/dist/browser/modules/excel/chart/stroke-font.d.ts +36 -0
- package/dist/browser/modules/excel/chart/stroke-font.js +1556 -0
- package/dist/browser/modules/excel/chart/topojson.d.ts +98 -0
- package/dist/browser/modules/excel/chart/topojson.js +236 -0
- package/dist/browser/modules/excel/chart/types.d.ts +2559 -0
- package/dist/browser/modules/excel/chart/types.js +8 -0
- package/dist/browser/modules/excel/chart-host-registry.d.ts +157 -0
- package/dist/browser/modules/excel/chart-host-registry.js +90 -0
- package/dist/browser/modules/excel/chartsheet.d.ts +102 -0
- package/dist/browser/modules/excel/chartsheet.js +196 -0
- package/dist/browser/modules/excel/defined-names.d.ts +35 -0
- package/dist/browser/modules/excel/defined-names.js +44 -4
- package/dist/browser/modules/excel/errors.d.ts +6 -0
- package/dist/browser/modules/excel/errors.js +9 -0
- package/dist/browser/modules/excel/form-control.d.ts +6 -0
- package/dist/browser/modules/excel/form-control.js +17 -0
- package/dist/browser/modules/excel/image.js +12 -2
- package/dist/browser/modules/excel/pivot-chart.d.ts +7 -0
- package/dist/browser/modules/excel/pivot-chart.js +53 -0
- package/dist/browser/modules/excel/pivot-table.d.ts +55 -0
- package/dist/browser/modules/excel/pivot-table.js +35 -0
- package/dist/browser/modules/excel/range.js +5 -1
- package/dist/browser/modules/excel/sparkline/index.d.ts +7 -0
- package/dist/browser/modules/excel/sparkline/index.js +7 -0
- package/dist/browser/modules/excel/sparkline/sparkline.d.ts +206 -0
- package/dist/browser/modules/excel/sparkline/sparkline.js +750 -0
- package/dist/browser/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/browser/modules/excel/table.js +42 -6
- package/dist/browser/modules/excel/types.d.ts +72 -0
- package/dist/browser/modules/excel/utils/address.d.ts +18 -0
- package/dist/browser/modules/excel/utils/address.js +28 -0
- package/dist/browser/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/browser/modules/excel/utils/guid.d.ts +15 -0
- package/dist/browser/modules/excel/utils/guid.js +35 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +74 -0
- package/dist/browser/modules/excel/utils/ooxml-paths.js +206 -9
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-table.js +177 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/context.js +191 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/index.js +102 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/reporter.js +61 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/types.js +12 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
- package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
- package/dist/browser/modules/excel/workbook.browser.d.ts +248 -30
- package/dist/browser/modules/excel/workbook.browser.js +966 -31
- package/dist/browser/modules/excel/workbook.d.ts +43 -0
- package/dist/browser/modules/excel/workbook.js +48 -0
- package/dist/browser/modules/excel/worksheet.d.ts +157 -3
- package/dist/browser/modules/excel/worksheet.js +394 -35
- package/dist/browser/modules/excel/xlsx/rel-type.d.ts +40 -0
- package/dist/browser/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
- package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
- package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/browser/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
- package/dist/browser/modules/excel/xlsx/xform/xsd-values.js +101 -0
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +4422 -78
- package/dist/browser/modules/pdf/builder/document-builder.d.ts +74 -0
- package/dist/browser/modules/pdf/builder/document-builder.js +507 -2
- package/dist/browser/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/browser/modules/pdf/excel-bridge.d.ts +69 -0
- package/dist/browser/modules/pdf/excel-bridge.js +683 -12
- package/dist/browser/modules/pdf/font/font-manager.d.ts +25 -0
- package/dist/browser/modules/pdf/font/font-manager.js +39 -0
- package/dist/browser/modules/pdf/index.d.ts +5 -2
- package/dist/browser/modules/pdf/index.js +3 -1
- package/dist/browser/modules/pdf/render/chart-surface.d.ts +33 -0
- package/dist/browser/modules/pdf/render/chart-surface.js +200 -0
- package/dist/browser/modules/pdf/render/layout-engine.d.ts +22 -1
- package/dist/browser/modules/pdf/render/layout-engine.js +436 -56
- package/dist/browser/modules/pdf/render/page-renderer.js +169 -28
- package/dist/browser/modules/pdf/render/pdf-exporter.js +117 -7
- package/dist/browser/modules/pdf/types.d.ts +227 -23
- package/dist/browser/modules/pdf/types.js +4 -0
- package/dist/browser/modules/pdf/word-bridge.d.ts +47 -0
- package/dist/browser/modules/pdf/word-bridge.js +304 -0
- package/dist/browser/modules/word/constants.d.ts +179 -0
- package/dist/browser/modules/word/constants.js +231 -0
- package/dist/browser/modules/word/content-types.d.ts +27 -0
- package/dist/browser/modules/word/content-types.js +53 -0
- package/dist/browser/modules/word/digital-signatures.d.ts +87 -0
- package/dist/browser/modules/word/digital-signatures.js +134 -0
- package/dist/browser/modules/word/document.d.ts +728 -0
- package/dist/browser/modules/word/document.js +1795 -0
- package/dist/browser/modules/word/docx-packager.d.ts +14 -0
- package/dist/browser/modules/word/docx-packager.js +822 -0
- package/dist/browser/modules/word/docx-reader.d.ts +11 -0
- package/dist/browser/modules/word/docx-reader.js +4929 -0
- package/dist/browser/modules/word/encryption.d.ts +102 -0
- package/dist/browser/modules/word/encryption.js +274 -0
- package/dist/browser/modules/word/errors.d.ts +49 -0
- package/dist/browser/modules/word/errors.js +68 -0
- package/dist/browser/modules/word/font-obfuscation.d.ts +31 -0
- package/dist/browser/modules/word/font-obfuscation.js +83 -0
- package/dist/browser/modules/word/html-renderer.d.ts +38 -0
- package/dist/browser/modules/word/html-renderer.js +782 -0
- package/dist/browser/modules/word/index.base.d.ts +19 -0
- package/dist/browser/modules/word/index.base.js +51 -0
- package/dist/browser/modules/word/index.browser.d.ts +4 -0
- package/dist/browser/modules/word/index.browser.js +4 -0
- package/dist/browser/modules/word/index.d.ts +4 -0
- package/dist/browser/modules/word/index.js +4 -0
- package/dist/browser/modules/word/internal-utils.d.ts +23 -0
- package/dist/browser/modules/word/internal-utils.js +54 -0
- package/dist/browser/modules/word/relationships.d.ts +31 -0
- package/dist/browser/modules/word/relationships.js +56 -0
- package/dist/browser/modules/word/types.d.ts +2325 -0
- package/dist/browser/modules/word/types.js +10 -0
- package/dist/browser/modules/word/units.d.ts +49 -0
- package/dist/browser/modules/word/units.js +111 -0
- package/dist/browser/modules/word/writers/chart-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/chart-writer.js +385 -0
- package/dist/browser/modules/word/writers/checkbox-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/checkbox-writer.js +42 -0
- package/dist/browser/modules/word/writers/comment-writer.d.ts +15 -0
- package/dist/browser/modules/word/writers/comment-writer.js +70 -0
- package/dist/browser/modules/word/writers/document-writer.d.ts +16 -0
- package/dist/browser/modules/word/writers/document-writer.js +461 -0
- package/dist/browser/modules/word/writers/footnote-writer.d.ts +11 -0
- package/dist/browser/modules/word/writers/footnote-writer.js +72 -0
- package/dist/browser/modules/word/writers/header-footer-writer.d.ts +13 -0
- package/dist/browser/modules/word/writers/header-footer-writer.js +129 -0
- package/dist/browser/modules/word/writers/image-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/image-writer.js +185 -0
- package/dist/browser/modules/word/writers/math-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/math-writer.js +428 -0
- package/dist/browser/modules/word/writers/numbering-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/numbering-writer.js +125 -0
- package/dist/browser/modules/word/writers/paragraph-writer.d.ts +13 -0
- package/dist/browser/modules/word/writers/paragraph-writer.js +516 -0
- package/dist/browser/modules/word/writers/parts-writer.d.ts +26 -0
- package/dist/browser/modules/word/writers/parts-writer.js +660 -0
- package/dist/browser/modules/word/writers/run-writer.d.ts +15 -0
- package/dist/browser/modules/word/writers/run-writer.js +649 -0
- package/dist/browser/modules/word/writers/section-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/section-writer.js +238 -0
- package/dist/browser/modules/word/writers/styles-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/styles-writer.js +242 -0
- package/dist/browser/modules/word/writers/table-writer.d.ts +10 -0
- package/dist/browser/modules/word/writers/table-writer.js +503 -0
- package/dist/browser/modules/word/writers/textbox-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/textbox-writer.js +53 -0
- package/dist/browser/modules/word/writers/toc-writer.d.ts +9 -0
- package/dist/browser/modules/word/writers/toc-writer.js +79 -0
- package/dist/browser/modules/xml/encode.d.ts +56 -7
- package/dist/browser/modules/xml/encode.js +157 -11
- package/dist/cjs/index.js +13 -2
- package/dist/cjs/modules/excel/chart/cache-populator.js +1178 -0
- package/dist/cjs/modules/excel/chart/chart-api.js +371 -0
- package/dist/cjs/modules/excel/chart/chart-builder.js +2440 -0
- package/dist/cjs/modules/excel/chart/chart-ex-builder.js +907 -0
- package/dist/cjs/modules/excel/chart/chart-ex-parser.js +1208 -0
- package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +5364 -0
- package/dist/cjs/modules/excel/chart/chart-ex-types.js +12 -0
- package/dist/cjs/modules/excel/chart/chart-images.js +366 -0
- package/dist/cjs/modules/excel/chart/chart-presets.js +184 -0
- package/dist/cjs/modules/excel/chart/chart-renderer.js +6450 -0
- package/dist/cjs/modules/excel/chart/chart-sidecar.js +433 -0
- package/dist/cjs/modules/excel/chart/chart-utils.js +845 -0
- package/dist/cjs/modules/excel/chart/chart.js +1324 -0
- package/dist/cjs/modules/excel/chart/glyph-rasterizer.js +664 -0
- package/dist/cjs/modules/excel/chart/index.js +101 -0
- package/dist/cjs/modules/excel/chart/install.js +95 -0
- package/dist/cjs/modules/excel/chart/shape-properties.js +1577 -0
- package/dist/cjs/modules/excel/chart/stroke-font.js +1559 -0
- package/dist/cjs/modules/excel/chart/topojson.js +239 -0
- package/dist/cjs/modules/excel/chart/types.js +9 -0
- package/dist/cjs/modules/excel/chart-host-registry.js +96 -0
- package/dist/cjs/modules/excel/chartsheet.js +199 -0
- package/dist/cjs/modules/excel/defined-names.js +44 -4
- package/dist/cjs/modules/excel/errors.js +11 -1
- package/dist/cjs/modules/excel/form-control.js +17 -0
- package/dist/cjs/modules/excel/image.js +12 -2
- package/dist/cjs/modules/excel/pivot-chart.js +56 -0
- package/dist/cjs/modules/excel/pivot-table.js +35 -0
- package/dist/cjs/modules/excel/range.js +5 -1
- package/dist/cjs/modules/excel/sparkline/index.js +23 -0
- package/dist/cjs/modules/excel/sparkline/sparkline.js +756 -0
- package/dist/cjs/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/cjs/modules/excel/table.js +42 -6
- package/dist/cjs/modules/excel/utils/address.js +29 -0
- package/dist/cjs/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/cjs/modules/excel/utils/guid.js +38 -0
- package/dist/cjs/modules/excel/utils/ooxml-paths.js +246 -9
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +103 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart.js +2128 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-chartsheet.js +29 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-content-types.js +184 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-drawing.js +270 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-pivot.js +107 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-relationships.js +188 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-structure.js +60 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-styles.js +92 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-table.js +180 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-workbook.js +166 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/check-worksheet.js +572 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/context.js +196 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/index.js +105 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/path-utils.js +168 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/reporter.js +66 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/types.js +13 -0
- package/dist/cjs/modules/excel/utils/ooxml-validator/xml-utils.js +110 -0
- package/dist/cjs/modules/excel/workbook.browser.js +973 -38
- package/dist/cjs/modules/excel/workbook.js +48 -0
- package/dist/cjs/modules/excel/worksheet.js +393 -34
- package/dist/cjs/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6003 -0
- package/dist/cjs/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +219 -0
- package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +149 -10
- package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/cjs/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +228 -0
- package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/cjs/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +444 -0
- package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +195 -19
- package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/cjs/modules/excel/xlsx/xform/xsd-values.js +106 -0
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +4420 -76
- package/dist/cjs/modules/pdf/builder/document-builder.js +506 -1
- package/dist/cjs/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/cjs/modules/pdf/excel-bridge.js +684 -12
- package/dist/cjs/modules/pdf/font/font-manager.js +39 -0
- package/dist/cjs/modules/pdf/index.js +5 -1
- package/dist/cjs/modules/pdf/render/chart-surface.js +203 -0
- package/dist/cjs/modules/pdf/render/layout-engine.js +437 -56
- package/dist/cjs/modules/pdf/render/page-renderer.js +169 -28
- package/dist/cjs/modules/pdf/render/pdf-exporter.js +115 -5
- package/dist/cjs/modules/pdf/types.js +5 -0
- package/dist/cjs/modules/pdf/word-bridge.js +307 -0
- package/dist/cjs/modules/word/constants.js +234 -0
- package/dist/cjs/modules/word/content-types.js +57 -0
- package/dist/cjs/modules/word/digital-signatures.js +140 -0
- package/dist/cjs/modules/word/document.js +1909 -0
- package/dist/cjs/modules/word/docx-packager.js +825 -0
- package/dist/cjs/modules/word/docx-reader.js +4932 -0
- package/dist/cjs/modules/word/encryption.js +282 -0
- package/dist/cjs/modules/word/errors.js +88 -0
- package/dist/cjs/modules/word/font-obfuscation.js +88 -0
- package/dist/cjs/modules/word/html-renderer.js +785 -0
- package/dist/cjs/modules/word/index.base.js +199 -0
- package/dist/cjs/modules/word/index.browser.js +20 -0
- package/dist/cjs/modules/word/index.js +20 -0
- package/dist/cjs/modules/word/internal-utils.js +59 -0
- package/dist/cjs/modules/word/relationships.js +60 -0
- package/dist/cjs/modules/word/types.js +11 -0
- package/dist/cjs/modules/word/units.js +135 -0
- package/dist/cjs/modules/word/writers/chart-writer.js +388 -0
- package/dist/cjs/modules/word/writers/checkbox-writer.js +45 -0
- package/dist/cjs/modules/word/writers/comment-writer.js +74 -0
- package/dist/cjs/modules/word/writers/document-writer.js +465 -0
- package/dist/cjs/modules/word/writers/footnote-writer.js +76 -0
- package/dist/cjs/modules/word/writers/header-footer-writer.js +134 -0
- package/dist/cjs/modules/word/writers/image-writer.js +188 -0
- package/dist/cjs/modules/word/writers/math-writer.js +431 -0
- package/dist/cjs/modules/word/writers/numbering-writer.js +128 -0
- package/dist/cjs/modules/word/writers/paragraph-writer.js +521 -0
- package/dist/cjs/modules/word/writers/parts-writer.js +671 -0
- package/dist/cjs/modules/word/writers/run-writer.js +655 -0
- package/dist/cjs/modules/word/writers/section-writer.js +241 -0
- package/dist/cjs/modules/word/writers/styles-writer.js +245 -0
- package/dist/cjs/modules/word/writers/table-writer.js +506 -0
- package/dist/cjs/modules/word/writers/textbox-writer.js +56 -0
- package/dist/cjs/modules/word/writers/toc-writer.js +82 -0
- package/dist/cjs/modules/xml/encode.js +158 -11
- package/dist/esm/index.browser.js +20 -2
- package/dist/esm/index.js +9 -1
- package/dist/esm/modules/excel/chart/cache-populator.js +1171 -0
- package/dist/esm/modules/excel/chart/chart-api.js +364 -0
- package/dist/esm/modules/excel/chart/chart-builder.js +2432 -0
- package/dist/esm/modules/excel/chart/chart-ex-builder.js +903 -0
- package/dist/esm/modules/excel/chart/chart-ex-parser.js +1205 -0
- package/dist/esm/modules/excel/chart/chart-ex-renderer.js +5352 -0
- package/dist/esm/modules/excel/chart/chart-ex-types.js +11 -0
- package/dist/esm/modules/excel/chart/chart-images.js +363 -0
- package/dist/esm/modules/excel/chart/chart-presets.js +179 -0
- package/dist/esm/modules/excel/chart/chart-renderer.js +6440 -0
- package/dist/esm/modules/excel/chart/chart-sidecar.js +427 -0
- package/dist/esm/modules/excel/chart/chart-utils.js +821 -0
- package/dist/esm/modules/excel/chart/chart.js +1320 -0
- package/dist/esm/modules/excel/chart/glyph-rasterizer.js +658 -0
- package/dist/esm/modules/excel/chart/index.js +46 -0
- package/dist/esm/modules/excel/chart/install.js +91 -0
- package/dist/esm/modules/excel/chart/shape-properties.js +1557 -0
- package/dist/esm/modules/excel/chart/stroke-font.js +1556 -0
- package/dist/esm/modules/excel/chart/topojson.js +236 -0
- package/dist/esm/modules/excel/chart/types.js +8 -0
- package/dist/esm/modules/excel/chart-host-registry.js +90 -0
- package/dist/esm/modules/excel/chartsheet.js +196 -0
- package/dist/esm/modules/excel/defined-names.js +44 -4
- package/dist/esm/modules/excel/errors.js +9 -0
- package/dist/esm/modules/excel/form-control.js +17 -0
- package/dist/esm/modules/excel/image.js +12 -2
- package/dist/esm/modules/excel/pivot-chart.js +53 -0
- package/dist/esm/modules/excel/pivot-table.js +35 -0
- package/dist/esm/modules/excel/range.js +5 -1
- package/dist/esm/modules/excel/sparkline/index.js +7 -0
- package/dist/esm/modules/excel/sparkline/sparkline.js +750 -0
- package/dist/esm/modules/excel/stream/worksheet-writer.js +3 -2
- package/dist/esm/modules/excel/table.js +42 -6
- package/dist/esm/modules/excel/utils/address.js +28 -0
- package/dist/esm/modules/excel/utils/drawing-utils.js +11 -6
- package/dist/esm/modules/excel/utils/guid.js +35 -0
- package/dist/esm/modules/excel/utils/ooxml-paths.js +206 -9
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-table.js +177 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/context.js +191 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/index.js +102 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/reporter.js +61 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/types.js +12 -0
- package/dist/esm/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
- package/dist/esm/modules/excel/workbook.browser.js +969 -34
- package/dist/esm/modules/excel/workbook.js +48 -0
- package/dist/esm/modules/excel/worksheet.js +394 -35
- package/dist/esm/modules/excel/xlsx/rel-type.js +41 -1
- package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
- package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
- package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
- package/dist/esm/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
- package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
- package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
- package/dist/esm/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
- package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
- package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
- package/dist/esm/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
- package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
- package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
- package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
- package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
- package/dist/esm/modules/excel/xlsx/xform/xsd-values.js +101 -0
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +4422 -78
- package/dist/esm/modules/pdf/builder/document-builder.js +507 -2
- package/dist/esm/modules/pdf/builder/pdf-editor.js +48 -3
- package/dist/esm/modules/pdf/excel-bridge.js +683 -12
- package/dist/esm/modules/pdf/font/font-manager.js +39 -0
- package/dist/esm/modules/pdf/index.js +3 -1
- package/dist/esm/modules/pdf/render/chart-surface.js +200 -0
- package/dist/esm/modules/pdf/render/layout-engine.js +436 -56
- package/dist/esm/modules/pdf/render/page-renderer.js +169 -28
- package/dist/esm/modules/pdf/render/pdf-exporter.js +117 -7
- package/dist/esm/modules/pdf/types.js +4 -0
- package/dist/esm/modules/pdf/word-bridge.js +304 -0
- package/dist/esm/modules/word/constants.js +231 -0
- package/dist/esm/modules/word/content-types.js +53 -0
- package/dist/esm/modules/word/digital-signatures.js +134 -0
- package/dist/esm/modules/word/document.js +1795 -0
- package/dist/esm/modules/word/docx-packager.js +822 -0
- package/dist/esm/modules/word/docx-reader.js +4929 -0
- package/dist/esm/modules/word/encryption.js +274 -0
- package/dist/esm/modules/word/errors.js +68 -0
- package/dist/esm/modules/word/font-obfuscation.js +83 -0
- package/dist/esm/modules/word/html-renderer.js +782 -0
- package/dist/esm/modules/word/index.base.js +51 -0
- package/dist/esm/modules/word/index.browser.js +4 -0
- package/dist/esm/modules/word/index.js +4 -0
- package/dist/esm/modules/word/internal-utils.js +54 -0
- package/dist/esm/modules/word/relationships.js +56 -0
- package/dist/esm/modules/word/types.js +10 -0
- package/dist/esm/modules/word/units.js +111 -0
- package/dist/esm/modules/word/writers/chart-writer.js +385 -0
- package/dist/esm/modules/word/writers/checkbox-writer.js +42 -0
- package/dist/esm/modules/word/writers/comment-writer.js +70 -0
- package/dist/esm/modules/word/writers/document-writer.js +461 -0
- package/dist/esm/modules/word/writers/footnote-writer.js +72 -0
- package/dist/esm/modules/word/writers/header-footer-writer.js +129 -0
- package/dist/esm/modules/word/writers/image-writer.js +185 -0
- package/dist/esm/modules/word/writers/math-writer.js +428 -0
- package/dist/esm/modules/word/writers/numbering-writer.js +125 -0
- package/dist/esm/modules/word/writers/paragraph-writer.js +516 -0
- package/dist/esm/modules/word/writers/parts-writer.js +660 -0
- package/dist/esm/modules/word/writers/run-writer.js +649 -0
- package/dist/esm/modules/word/writers/section-writer.js +238 -0
- package/dist/esm/modules/word/writers/styles-writer.js +242 -0
- package/dist/esm/modules/word/writers/table-writer.js +503 -0
- package/dist/esm/modules/word/writers/textbox-writer.js +53 -0
- package/dist/esm/modules/word/writers/toc-writer.js +79 -0
- package/dist/esm/modules/xml/encode.js +157 -11
- package/dist/iife/excelts.iife.js +11789 -687
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +52 -44
- package/dist/types/index.browser.d.ts +8 -5
- package/dist/types/index.d.ts +4 -2
- package/dist/types/modules/excel/chart/cache-populator.d.ts +49 -0
- package/dist/types/modules/excel/chart/chart-api.d.ts +92 -0
- package/dist/types/modules/excel/chart/chart-builder.d.ts +48 -0
- package/dist/types/modules/excel/chart/chart-ex-builder.d.ts +36 -0
- package/dist/types/modules/excel/chart/chart-ex-parser.d.ts +8 -0
- package/dist/types/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
- package/dist/types/modules/excel/chart/chart-ex-types.d.ts +531 -0
- package/dist/types/modules/excel/chart/chart-images.d.ts +78 -0
- package/dist/types/modules/excel/chart/chart-presets.d.ts +392 -0
- package/dist/types/modules/excel/chart/chart-renderer.d.ts +550 -0
- package/dist/types/modules/excel/chart/chart-sidecar.d.ts +21 -0
- package/dist/types/modules/excel/chart/chart-utils.d.ts +306 -0
- package/dist/types/modules/excel/chart/chart.d.ts +504 -0
- package/dist/types/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
- package/dist/types/modules/excel/chart/index.d.ts +54 -0
- package/dist/types/modules/excel/chart/install.d.ts +44 -0
- package/dist/types/modules/excel/chart/shape-properties.d.ts +156 -0
- package/dist/types/modules/excel/chart/stroke-font.d.ts +36 -0
- package/dist/types/modules/excel/chart/topojson.d.ts +98 -0
- package/dist/types/modules/excel/chart/types.d.ts +2559 -0
- package/dist/types/modules/excel/chart-host-registry.d.ts +157 -0
- package/dist/types/modules/excel/chartsheet.d.ts +102 -0
- package/dist/types/modules/excel/defined-names.d.ts +35 -0
- package/dist/types/modules/excel/errors.d.ts +6 -0
- package/dist/types/modules/excel/form-control.d.ts +6 -0
- package/dist/types/modules/excel/pivot-chart.d.ts +7 -0
- package/dist/types/modules/excel/pivot-table.d.ts +55 -0
- package/dist/types/modules/excel/sparkline/index.d.ts +7 -0
- package/dist/types/modules/excel/sparkline/sparkline.d.ts +206 -0
- package/dist/types/modules/excel/types.d.ts +72 -0
- package/dist/types/modules/excel/utils/address.d.ts +18 -0
- package/dist/types/modules/excel/utils/guid.d.ts +15 -0
- package/dist/types/modules/excel/utils/ooxml-paths.d.ts +74 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
- package/dist/types/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
- package/dist/types/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
- package/dist/types/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
- package/dist/types/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
- package/dist/types/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
- package/dist/types/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
- package/dist/types/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
- package/dist/types/modules/excel/workbook.browser.d.ts +248 -30
- package/dist/types/modules/excel/workbook.d.ts +43 -0
- package/dist/types/modules/excel/worksheet.d.ts +157 -3
- package/dist/types/modules/excel/xlsx/rel-type.d.ts +40 -0
- package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
- package/dist/types/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
- package/dist/types/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
- package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
- package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
- package/dist/types/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
- package/dist/types/modules/pdf/builder/document-builder.d.ts +74 -0
- package/dist/types/modules/pdf/excel-bridge.d.ts +69 -0
- package/dist/types/modules/pdf/font/font-manager.d.ts +25 -0
- package/dist/types/modules/pdf/index.d.ts +5 -2
- package/dist/types/modules/pdf/render/chart-surface.d.ts +33 -0
- package/dist/types/modules/pdf/render/layout-engine.d.ts +22 -1
- package/dist/types/modules/pdf/types.d.ts +227 -23
- package/dist/types/modules/pdf/word-bridge.d.ts +47 -0
- package/dist/types/modules/word/constants.d.ts +179 -0
- package/dist/types/modules/word/content-types.d.ts +27 -0
- package/dist/types/modules/word/digital-signatures.d.ts +87 -0
- package/dist/types/modules/word/document.d.ts +728 -0
- package/dist/types/modules/word/docx-packager.d.ts +14 -0
- package/dist/types/modules/word/docx-reader.d.ts +11 -0
- package/dist/types/modules/word/encryption.d.ts +102 -0
- package/dist/types/modules/word/errors.d.ts +49 -0
- package/dist/types/modules/word/font-obfuscation.d.ts +31 -0
- package/dist/types/modules/word/html-renderer.d.ts +38 -0
- package/dist/types/modules/word/index.base.d.ts +19 -0
- package/dist/types/modules/word/index.browser.d.ts +4 -0
- package/dist/types/modules/word/index.d.ts +4 -0
- package/dist/types/modules/word/internal-utils.d.ts +23 -0
- package/dist/types/modules/word/relationships.d.ts +31 -0
- package/dist/types/modules/word/types.d.ts +2325 -0
- package/dist/types/modules/word/units.d.ts +49 -0
- package/dist/types/modules/word/writers/chart-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/checkbox-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/comment-writer.d.ts +15 -0
- package/dist/types/modules/word/writers/document-writer.d.ts +16 -0
- package/dist/types/modules/word/writers/footnote-writer.d.ts +11 -0
- package/dist/types/modules/word/writers/header-footer-writer.d.ts +13 -0
- package/dist/types/modules/word/writers/image-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/math-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/numbering-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/paragraph-writer.d.ts +13 -0
- package/dist/types/modules/word/writers/parts-writer.d.ts +26 -0
- package/dist/types/modules/word/writers/run-writer.d.ts +15 -0
- package/dist/types/modules/word/writers/section-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/styles-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/table-writer.d.ts +10 -0
- package/dist/types/modules/word/writers/textbox-writer.d.ts +9 -0
- package/dist/types/modules/word/writers/toc-writer.d.ts +9 -0
- package/dist/types/modules/xml/encode.d.ts +56 -7
- package/package.json +29 -11
- package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +0 -48
- package/dist/browser/modules/excel/utils/ooxml-validator.js +0 -493
- package/dist/browser/modules/excel/utils/passthrough-manager.d.ts +0 -77
- package/dist/browser/modules/excel/utils/passthrough-manager.js +0 -129
- package/dist/cjs/modules/excel/utils/ooxml-validator.js +0 -499
- package/dist/cjs/modules/excel/utils/passthrough-manager.js +0 -133
- package/dist/esm/modules/excel/utils/ooxml-validator.js +0 -493
- package/dist/esm/modules/excel/utils/passthrough-manager.js +0 -129
- package/dist/types/modules/excel/utils/ooxml-validator.d.ts +0 -48
- 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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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:
|
|
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
|
+
}
|