@cj-tech-master/excelts 9.5.4 → 9.5.5
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/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/browser/modules/archive/fs/archive-file.js +78 -16
- package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
- package/dist/browser/modules/excel/chart/chart.js +1 -7
- package/dist/browser/modules/excel/chart/types.d.ts +0 -6
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/browser/modules/excel/utils/string-buf.js +4 -81
- package/dist/browser/modules/excel/workbook.browser.js +135 -25
- package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/browser/modules/pdf/excel-bridge.js +32 -0
- package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/browser/modules/pdf/font/metrics.js +3 -237
- package/dist/browser/modules/pdf/index.d.ts +1 -1
- package/dist/browser/modules/pdf/index.js +1 -1
- package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/browser/modules/pdf/word-bridge.js +122 -274
- package/dist/browser/modules/stream/index.base.d.ts +2 -0
- package/dist/browser/modules/stream/index.base.js +2 -1
- package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
- package/dist/browser/modules/stream/pull-stream.js +51 -5
- package/dist/browser/modules/stream/types.d.ts +13 -1
- package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
- package/dist/browser/modules/word/advanced/diff.js +167 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
- package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/browser/modules/word/advanced/glossary.js +79 -0
- package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/browser/modules/word/advanced/math-convert.js +595 -0
- package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
- package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/browser/modules/word/advanced/style-map.js +322 -0
- package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
- package/dist/browser/modules/word/advanced/validation.js +1065 -0
- package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/browser/modules/word/advanced/vba-project.js +265 -0
- package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/browser/modules/word/builder/document-handle.js +664 -0
- package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/browser/modules/word/builder/run-builders.js +600 -0
- package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/browser/modules/word/builder/table-builders.js +45 -0
- package/dist/browser/modules/word/constants.d.ts +39 -1
- package/dist/browser/modules/word/constants.js +109 -1
- package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/browser/modules/word/convert/flat-opc.js +385 -0
- package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
- package/dist/browser/modules/word/convert/html/html.js +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
- package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/browser/modules/word/core/color-utils.js +43 -0
- package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/browser/modules/word/core/internal-utils.js +209 -0
- package/dist/browser/modules/word/core/mapper.d.ts +44 -0
- package/dist/browser/modules/word/core/mapper.js +427 -0
- package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/browser/modules/word/core/opc-paths.js +48 -0
- package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
- package/dist/browser/modules/word/core/text-utils.js +202 -0
- package/dist/browser/modules/word/core/walker.d.ts +119 -0
- package/dist/browser/modules/word/core/walker.js +570 -0
- package/dist/browser/modules/word/crypto.d.ts +14 -9
- package/dist/browser/modules/word/crypto.js +13 -7
- package/dist/browser/modules/word/document-io.d.ts +59 -27
- package/dist/browser/modules/word/document-io.js +80 -197
- package/dist/browser/modules/word/errors.d.ts +44 -1
- package/dist/browser/modules/word/errors.js +54 -2
- package/dist/browser/modules/word/excel.d.ts +14 -0
- package/dist/browser/modules/word/excel.js +13 -0
- package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
- package/dist/browser/modules/word/font/font-embed.js +646 -0
- package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/browser/modules/word/font/hyphenation.js +4210 -0
- package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/browser/modules/word/font/text-shaping.js +635 -0
- package/dist/browser/modules/word/html.d.ts +7 -6
- package/dist/browser/modules/word/html.js +6 -5
- package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
- package/dist/browser/modules/word/incremental-edit.js +361 -0
- package/dist/browser/modules/word/index.base.d.ts +194 -10
- package/dist/browser/modules/word/index.base.js +138 -29
- package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/browser/modules/word/layout/layout-constants.js +17 -0
- package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/browser/modules/word/layout/layout-full.js +1696 -0
- package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/browser/modules/word/layout/layout-model.js +16 -0
- package/dist/browser/modules/word/layout/layout.d.ts +63 -0
- package/dist/browser/modules/word/layout/layout.js +1167 -0
- package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
- package/dist/browser/modules/word/layout/render-page.js +1238 -0
- package/dist/browser/modules/word/markdown.d.ts +14 -0
- package/dist/browser/modules/word/markdown.js +13 -0
- package/dist/browser/modules/word/patcher.d.ts +62 -0
- package/dist/browser/modules/word/patcher.js +537 -0
- package/dist/browser/modules/word/query/compat.d.ts +25 -0
- package/dist/browser/modules/word/query/compat.js +58 -0
- package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
- package/dist/browser/modules/word/query/data-binding.js +392 -0
- package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
- package/dist/browser/modules/word/query/form-fields.js +268 -0
- package/dist/browser/modules/word/query/format-search.d.ts +99 -0
- package/dist/browser/modules/word/query/format-search.js +329 -0
- package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/browser/modules/word/query/mail-merge.js +111 -0
- package/dist/browser/modules/word/query/merge.d.ts +50 -0
- package/dist/browser/modules/word/query/merge.js +617 -0
- package/dist/browser/modules/word/query/replace.d.ts +47 -0
- package/dist/browser/modules/word/query/replace.js +301 -0
- package/dist/browser/modules/word/query/revisions.d.ts +67 -0
- package/dist/browser/modules/word/query/revisions.js +879 -0
- package/dist/browser/modules/word/query/search.d.ts +129 -0
- package/dist/browser/modules/word/query/search.js +346 -0
- package/dist/browser/modules/word/query/split.d.ts +44 -0
- package/dist/browser/modules/word/query/split.js +135 -0
- package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/browser/modules/word/query/style-resolve.js +368 -0
- package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/browser/modules/word/reader/chart-parser.js +810 -0
- package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/browser/modules/word/reader/comments-parser.js +92 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
- package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
- package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/browser/modules/word/reader/image-parsers.js +291 -0
- package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/math-parser.js +422 -0
- package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/browser/modules/word/reader/parse-utils.js +249 -0
- package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
- package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/browser/modules/word/reader/reader-context.js +61 -0
- package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/settings-parser.js +263 -0
- package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/browser/modules/word/reader/styles-parser.js +147 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/browser/modules/word/reader/theme-parser.js +167 -0
- package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
- package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/browser/modules/word/security/cfb-reader.js +410 -0
- package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
- package/dist/browser/modules/word/security/document-protection.js +201 -0
- package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
- package/dist/browser/modules/word/security/encryption.js +602 -0
- package/dist/browser/modules/word/security/policy.d.ts +80 -0
- package/dist/browser/modules/word/security/policy.js +102 -0
- package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
- package/dist/browser/modules/word/template/template-chart.js +167 -0
- package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/browser/modules/word/template/template-datasource.js +541 -0
- package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
- package/dist/browser/modules/word/template/template-engine.js +1435 -0
- package/dist/browser/modules/word/types.d.ts +224 -25
- package/dist/browser/modules/word/units.d.ts +26 -0
- package/dist/browser/modules/word/units.js +43 -14
- package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/browser/modules/word/writer/common-parts.js +101 -0
- package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
- package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/browser/modules/word/writer/document-writer.js +473 -0
- package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
- package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
- package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
- package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
- package/dist/browser/modules/word/writer/relationships.js +117 -0
- package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
- package/dist/browser/modules/word/writer/render-context.js +46 -0
- package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
- package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
- package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/browser/modules/word/writer/stream-buf.js +73 -0
- package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/browser/modules/word/writer/string-buf.js +7 -0
- package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/browser/modules/xml/types.d.ts +22 -0
- package/dist/browser/utils/crypto.browser.d.ts +3 -1
- package/dist/browser/utils/crypto.browser.js +3 -1
- package/dist/browser/utils/crypto.d.ts +4 -1
- package/dist/browser/utils/crypto.js +4 -1
- package/dist/browser/utils/font-metrics.d.ts +63 -0
- package/dist/browser/utils/font-metrics.js +293 -0
- package/dist/browser/utils/string-buf.d.ts +42 -0
- package/dist/browser/utils/string-buf.js +89 -0
- package/dist/browser/utils/theme-colors.d.ts +55 -0
- package/dist/browser/utils/theme-colors.js +120 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
- package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/cjs/modules/excel/chart/chart.js +1 -7
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
- package/dist/cjs/modules/excel/workbook.browser.js +135 -25
- package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
- package/dist/cjs/modules/pdf/font/metrics.js +11 -244
- package/dist/cjs/modules/pdf/index.js +2 -1
- package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
- package/dist/cjs/modules/pdf/word-bridge.js +155 -274
- package/dist/cjs/modules/stream/index.base.js +4 -2
- package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
- package/dist/cjs/modules/stream/pull-stream.js +51 -5
- package/dist/cjs/modules/word/advanced/diff.js +170 -0
- package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
- package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
- package/dist/cjs/modules/word/advanced/glossary.js +87 -0
- package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
- package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
- package/dist/cjs/modules/word/advanced/style-map.js +329 -0
- package/dist/cjs/modules/word/advanced/validation.js +1068 -0
- package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
- package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
- package/dist/cjs/modules/word/builder/document-handle.js +667 -0
- package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
- package/dist/cjs/modules/word/builder/run-builders.js +676 -0
- package/dist/cjs/modules/word/builder/table-builders.js +53 -0
- package/dist/cjs/modules/word/constants.js +111 -2
- package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
- package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
- package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
- package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
- package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
- package/dist/cjs/modules/word/convert/html/html.js +20 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
- package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
- package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
- package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
- package/dist/cjs/modules/word/core/color-utils.js +47 -0
- package/dist/cjs/modules/word/core/internal-utils.js +219 -0
- package/dist/cjs/modules/word/core/mapper.js +430 -0
- package/dist/cjs/modules/word/core/opc-paths.js +53 -0
- package/dist/cjs/modules/word/core/text-utils.js +210 -0
- package/dist/cjs/modules/word/core/walker.js +577 -0
- package/dist/cjs/modules/word/crypto.js +19 -8
- package/dist/cjs/modules/word/document-io.js +117 -197
- package/dist/cjs/modules/word/errors.js +59 -13
- package/dist/cjs/modules/word/excel.js +22 -0
- package/dist/cjs/modules/word/font/font-embed.js +652 -0
- package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
- package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
- package/dist/cjs/modules/word/font/text-shaping.js +640 -0
- package/dist/cjs/modules/word/html.js +9 -7
- package/dist/cjs/modules/word/incremental-edit.js +366 -0
- package/dist/cjs/modules/word/index.base.js +370 -137
- package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
- package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
- package/dist/cjs/modules/word/layout/layout-model.js +17 -0
- package/dist/cjs/modules/word/layout/layout.js +1170 -0
- package/dist/cjs/modules/word/layout/render-page.js +1243 -0
- package/dist/cjs/modules/word/markdown.js +19 -0
- package/dist/cjs/modules/word/patcher.js +539 -0
- package/dist/cjs/modules/word/query/compat.js +61 -0
- package/dist/cjs/modules/word/query/data-binding.js +395 -0
- package/dist/cjs/modules/word/query/form-fields.js +272 -0
- package/dist/cjs/modules/word/query/format-search.js +334 -0
- package/dist/cjs/modules/word/query/mail-merge.js +114 -0
- package/dist/cjs/modules/word/query/merge.js +620 -0
- package/dist/cjs/modules/word/query/replace.js +304 -0
- package/dist/cjs/modules/word/query/revisions.js +885 -0
- package/dist/cjs/modules/word/query/search.js +361 -0
- package/dist/cjs/modules/word/query/split.js +138 -0
- package/dist/cjs/modules/word/query/style-resolve.js +374 -0
- package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
- package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
- package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
- package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
- package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
- package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
- package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
- package/dist/cjs/modules/word/reader/math-parser.js +424 -0
- package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
- package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
- package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
- package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
- package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
- package/dist/cjs/modules/word/reader/reader-context.js +66 -0
- package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
- package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
- package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
- package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
- package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
- package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
- package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
- package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/cjs/modules/word/security/document-protection.js +208 -0
- package/dist/cjs/modules/word/security/encryption.js +612 -0
- package/dist/cjs/modules/word/security/policy.js +106 -0
- package/dist/cjs/modules/word/template/template-chart.js +170 -0
- package/dist/cjs/modules/word/template/template-datasource.js +549 -0
- package/dist/cjs/modules/word/template/template-engine.js +1430 -0
- package/dist/cjs/modules/word/units.js +44 -14
- package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
- package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
- package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/cjs/modules/word/writer/common-parts.js +104 -0
- package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
- package/dist/cjs/modules/word/writer/document-writer.js +478 -0
- package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
- package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
- package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
- package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
- package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
- package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
- package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
- package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
- package/dist/cjs/modules/word/writer/relationships.js +124 -0
- package/dist/cjs/modules/word/writer/render-context.js +51 -0
- package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
- package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
- package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
- package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
- package/dist/cjs/modules/word/writer/string-buf.js +11 -0
- package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/cjs/utils/crypto.browser.js +3 -1
- package/dist/cjs/utils/crypto.js +4 -1
- package/dist/cjs/utils/font-metrics.js +303 -0
- package/dist/cjs/utils/string-buf.js +92 -0
- package/dist/cjs/utils/theme-colors.js +126 -0
- package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
- package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
- package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
- package/dist/esm/modules/archive/fs/archive-file.js +78 -16
- package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
- package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
- package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
- package/dist/esm/modules/excel/chart/chart.js +1 -7
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
- package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
- package/dist/esm/modules/excel/utils/string-buf.js +4 -81
- package/dist/esm/modules/excel/workbook.browser.js +135 -25
- package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
- package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
- package/dist/esm/modules/pdf/excel-bridge.js +32 -0
- package/dist/esm/modules/pdf/font/metrics.js +3 -237
- package/dist/esm/modules/pdf/index.js +1 -1
- package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
- package/dist/esm/modules/pdf/word-bridge.js +122 -274
- package/dist/esm/modules/stream/index.base.js +2 -1
- package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
- package/dist/esm/modules/stream/pull-stream.js +51 -5
- package/dist/esm/modules/word/advanced/diff.js +167 -0
- package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
- package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
- package/dist/esm/modules/word/advanced/glossary.js +79 -0
- package/dist/esm/modules/word/advanced/math-convert.js +595 -0
- package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
- package/dist/esm/modules/word/advanced/style-map.js +322 -0
- package/dist/esm/modules/word/advanced/validation.js +1065 -0
- package/dist/esm/modules/word/advanced/vba-project.js +265 -0
- package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
- package/dist/esm/modules/word/builder/document-handle.js +664 -0
- package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
- package/dist/esm/modules/word/builder/run-builders.js +600 -0
- package/dist/esm/modules/word/builder/table-builders.js +45 -0
- package/dist/esm/modules/word/constants.js +109 -1
- package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
- package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
- package/dist/esm/modules/word/convert/flat-opc.js +385 -0
- package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
- package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
- package/dist/esm/modules/word/convert/html/html.js +15 -0
- package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
- package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
- package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
- package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
- package/dist/esm/modules/word/core/color-utils.js +43 -0
- package/dist/esm/modules/word/core/internal-utils.js +209 -0
- package/dist/esm/modules/word/core/mapper.js +427 -0
- package/dist/esm/modules/word/core/opc-paths.js +48 -0
- package/dist/esm/modules/word/core/text-utils.js +202 -0
- package/dist/esm/modules/word/core/walker.js +570 -0
- package/dist/esm/modules/word/crypto.js +13 -7
- package/dist/esm/modules/word/document-io.js +80 -197
- package/dist/esm/modules/word/errors.js +54 -2
- package/dist/esm/modules/word/excel.js +13 -0
- package/dist/esm/modules/word/font/font-embed.js +646 -0
- package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
- package/dist/esm/modules/word/font/hyphenation.js +4210 -0
- package/dist/esm/modules/word/font/text-shaping.js +635 -0
- package/dist/esm/modules/word/html.js +6 -5
- package/dist/esm/modules/word/incremental-edit.js +361 -0
- package/dist/esm/modules/word/index.base.js +138 -29
- package/dist/esm/modules/word/layout/layout-constants.js +17 -0
- package/dist/esm/modules/word/layout/layout-full.js +1696 -0
- package/dist/esm/modules/word/layout/layout-model.js +16 -0
- package/dist/esm/modules/word/layout/layout.js +1167 -0
- package/dist/esm/modules/word/layout/render-page.js +1238 -0
- package/dist/esm/modules/word/markdown.js +13 -0
- package/dist/esm/modules/word/patcher.js +537 -0
- package/dist/esm/modules/word/query/compat.js +58 -0
- package/dist/esm/modules/word/query/data-binding.js +392 -0
- package/dist/esm/modules/word/query/form-fields.js +268 -0
- package/dist/esm/modules/word/query/format-search.js +329 -0
- package/dist/esm/modules/word/query/mail-merge.js +111 -0
- package/dist/esm/modules/word/query/merge.js +617 -0
- package/dist/esm/modules/word/query/replace.js +301 -0
- package/dist/esm/modules/word/query/revisions.js +879 -0
- package/dist/esm/modules/word/query/search.js +346 -0
- package/dist/esm/modules/word/query/split.js +135 -0
- package/dist/esm/modules/word/query/style-resolve.js +368 -0
- package/dist/esm/modules/word/reader/chart-parser.js +810 -0
- package/dist/esm/modules/word/reader/comments-parser.js +92 -0
- package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
- package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
- package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
- package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
- package/dist/esm/modules/word/reader/image-parsers.js +291 -0
- package/dist/esm/modules/word/reader/math-parser.js +422 -0
- package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
- package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
- package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
- package/dist/esm/modules/word/reader/parse-utils.js +249 -0
- package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
- package/dist/esm/modules/word/reader/reader-context.js +61 -0
- package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
- package/dist/esm/modules/word/reader/settings-parser.js +263 -0
- package/dist/esm/modules/word/reader/styles-parser.js +147 -0
- package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
- package/dist/esm/modules/word/reader/theme-parser.js +167 -0
- package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
- package/dist/esm/modules/word/security/cfb-reader.js +410 -0
- package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
- package/dist/esm/modules/word/security/document-protection.js +201 -0
- package/dist/esm/modules/word/security/encryption.js +602 -0
- package/dist/esm/modules/word/security/policy.js +102 -0
- package/dist/esm/modules/word/template/template-chart.js +167 -0
- package/dist/esm/modules/word/template/template-datasource.js +541 -0
- package/dist/esm/modules/word/template/template-engine.js +1435 -0
- package/dist/esm/modules/word/units.js +43 -14
- package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
- package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
- package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
- package/dist/esm/modules/word/writer/common-parts.js +101 -0
- package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
- package/dist/esm/modules/word/writer/document-writer.js +473 -0
- package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
- package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
- package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
- package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
- package/dist/esm/modules/word/writer/relationships.js +117 -0
- package/dist/esm/modules/word/writer/render-context.js +46 -0
- package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
- package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
- package/dist/esm/modules/word/writer/stream-buf.js +73 -0
- package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
- package/dist/esm/modules/word/writer/string-buf.js +7 -0
- package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
- package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
- package/dist/esm/utils/crypto.browser.js +3 -1
- package/dist/esm/utils/crypto.js +4 -1
- package/dist/esm/utils/font-metrics.js +293 -0
- package/dist/esm/utils/string-buf.js +89 -0
- package/dist/esm/utils/theme-colors.js +120 -0
- package/dist/iife/excelts.iife.js +70692 -70337
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +57 -57
- package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
- package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
- package/dist/types/modules/excel/chart/chart.d.ts +1 -5
- package/dist/types/modules/excel/chart/types.d.ts +0 -6
- package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
- package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
- package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
- package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
- package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
- package/dist/types/modules/pdf/index.d.ts +1 -1
- package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
- package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
- package/dist/types/modules/stream/index.base.d.ts +2 -0
- package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
- package/dist/types/modules/stream/pull-stream.d.ts +19 -2
- package/dist/types/modules/stream/types.d.ts +13 -1
- package/dist/types/modules/word/advanced/diff.d.ts +61 -0
- package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
- package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
- package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
- package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
- package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
- package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
- package/dist/types/modules/word/advanced/validation.d.ts +56 -0
- package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
- package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
- package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
- package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
- package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
- package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
- package/dist/types/modules/word/constants.d.ts +39 -1
- package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
- package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
- package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
- package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
- package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
- package/dist/types/modules/word/convert/html/html.d.ts +15 -0
- package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
- package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
- package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
- package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
- package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
- package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
- package/dist/types/modules/word/core/mapper.d.ts +44 -0
- package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
- package/dist/types/modules/word/core/text-utils.d.ts +38 -0
- package/dist/types/modules/word/core/walker.d.ts +119 -0
- package/dist/types/modules/word/crypto.d.ts +14 -9
- package/dist/types/modules/word/document-io.d.ts +59 -27
- package/dist/types/modules/word/errors.d.ts +44 -1
- package/dist/types/modules/word/excel.d.ts +14 -0
- package/dist/types/modules/word/font/font-embed.d.ts +112 -0
- package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
- package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
- package/dist/types/modules/word/html.d.ts +7 -6
- package/dist/types/modules/word/incremental-edit.d.ts +123 -0
- package/dist/types/modules/word/index.base.d.ts +194 -10
- package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
- package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
- package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
- package/dist/types/modules/word/layout/layout.d.ts +63 -0
- package/dist/types/modules/word/layout/render-page.d.ts +57 -0
- package/dist/types/modules/word/markdown.d.ts +14 -0
- package/dist/types/modules/word/patcher.d.ts +62 -0
- package/dist/types/modules/word/query/compat.d.ts +25 -0
- package/dist/types/modules/word/query/data-binding.d.ts +22 -0
- package/dist/types/modules/word/query/form-fields.d.ts +41 -0
- package/dist/types/modules/word/query/format-search.d.ts +99 -0
- package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
- package/dist/types/modules/word/query/merge.d.ts +50 -0
- package/dist/types/modules/word/query/replace.d.ts +47 -0
- package/dist/types/modules/word/query/revisions.d.ts +67 -0
- package/dist/types/modules/word/query/search.d.ts +129 -0
- package/dist/types/modules/word/query/split.d.ts +44 -0
- package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
- package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
- package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
- package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
- package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
- package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
- package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
- package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
- package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
- package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
- package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
- package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
- package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
- package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
- package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
- package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
- package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
- package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
- package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
- package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
- package/dist/types/modules/word/security/document-protection.d.ts +93 -0
- package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
- package/dist/types/modules/word/security/policy.d.ts +80 -0
- package/dist/types/modules/word/template/template-chart.d.ts +56 -0
- package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
- package/dist/types/modules/word/template/template-engine.d.ts +121 -0
- package/dist/types/modules/word/types.d.ts +224 -25
- package/dist/types/modules/word/units.d.ts +26 -0
- package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
- package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
- package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
- package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
- package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
- package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
- package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
- package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
- package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
- package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
- package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
- package/dist/types/modules/word/writer/relationships.d.ts +52 -0
- package/dist/types/modules/word/writer/render-context.d.ts +124 -0
- package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
- package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
- package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
- package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
- package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
- package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
- package/dist/types/modules/xml/types.d.ts +22 -0
- package/dist/types/utils/crypto.browser.d.ts +3 -1
- package/dist/types/utils/crypto.d.ts +4 -1
- package/dist/types/utils/font-metrics.d.ts +63 -0
- package/dist/types/utils/string-buf.d.ts +42 -0
- package/dist/types/utils/theme-colors.d.ts +55 -0
- package/package.json +121 -39
- package/dist/browser/modules/word/color-utils.js +0 -94
- package/dist/browser/modules/word/document.d.ts +0 -657
- package/dist/browser/modules/word/document.js +0 -1533
- package/dist/browser/modules/word/docx-packager.d.ts +0 -14
- package/dist/browser/modules/word/docx-packager.js +0 -822
- package/dist/browser/modules/word/docx-reader.d.ts +0 -11
- package/dist/browser/modules/word/docx-reader.js +0 -4929
- package/dist/browser/modules/word/encryption.js +0 -274
- package/dist/browser/modules/word/internal-utils.d.ts +0 -23
- package/dist/browser/modules/word/internal-utils.js +0 -54
- package/dist/browser/modules/word/namespaces.d.ts +0 -159
- package/dist/browser/modules/word/namespaces.js +0 -189
- package/dist/browser/modules/word/relationships.d.ts +0 -30
- package/dist/browser/modules/word/relationships.js +0 -48
- package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/browser/modules/word/writers/document-writer.js +0 -461
- package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
- package/dist/cjs/modules/word/color-utils.js +0 -97
- package/dist/cjs/modules/word/document.js +0 -1645
- package/dist/cjs/modules/word/docx-packager.js +0 -825
- package/dist/cjs/modules/word/docx-reader.js +0 -4932
- package/dist/cjs/modules/word/encryption.js +0 -282
- package/dist/cjs/modules/word/internal-utils.js +0 -59
- package/dist/cjs/modules/word/namespaces.js +0 -192
- package/dist/cjs/modules/word/relationships.js +0 -55
- package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
- package/dist/cjs/modules/word/writers/document-writer.js +0 -465
- package/dist/esm/modules/word/color-utils.js +0 -94
- package/dist/esm/modules/word/document.js +0 -1533
- package/dist/esm/modules/word/docx-packager.js +0 -822
- package/dist/esm/modules/word/docx-reader.js +0 -4929
- package/dist/esm/modules/word/encryption.js +0 -274
- package/dist/esm/modules/word/internal-utils.js +0 -54
- package/dist/esm/modules/word/namespaces.js +0 -189
- package/dist/esm/modules/word/relationships.js +0 -48
- package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
- package/dist/esm/modules/word/writers/document-writer.js +0 -461
- package/dist/types/modules/word/document.d.ts +0 -657
- package/dist/types/modules/word/docx-packager.d.ts +0 -14
- package/dist/types/modules/word/docx-reader.d.ts +0 -11
- package/dist/types/modules/word/internal-utils.d.ts +0 -23
- package/dist/types/modules/word/namespaces.d.ts +0 -159
- package/dist/types/modules/word/relationships.d.ts +0 -30
- package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
- package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
- package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
- /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
- /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
- /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
- /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
- /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
- /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Word-to-PDF Bridge
|
|
3
3
|
*
|
|
4
|
-
* Converts a Word document (DocxDocument) to PDF.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Converts a Word document (`DocxDocument`) to PDF.
|
|
5
|
+
*
|
|
6
|
+
* The bridge is a thin translation layer:
|
|
7
|
+
*
|
|
8
|
+
* DocxDocument
|
|
9
|
+
* │
|
|
10
|
+
* │ layoutDocumentFull() ← @word/layout
|
|
11
|
+
* ▼
|
|
12
|
+
* LayoutDocument (positioned PageContent variants)
|
|
13
|
+
* │
|
|
14
|
+
* │ renderLayoutDocumentToPdf() ← ./render-layout-to-pdf
|
|
15
|
+
* ▼
|
|
16
|
+
* PdfDocumentBuilder → bytes
|
|
17
|
+
*
|
|
18
|
+
* Every flow decision (line wrapping, page breaks, table sizing,
|
|
19
|
+
* float positioning) lives in `@word/layout`. This file only handles
|
|
20
|
+
* option mapping, optional chart-renderer auto-detection, and the
|
|
21
|
+
* final `builder.build()` serialization.
|
|
22
|
+
*
|
|
23
|
+
* Like `excel-bridge.ts`, this is the ONLY file in the PDF module that
|
|
24
|
+
* imports from `@word`.
|
|
7
25
|
*
|
|
8
26
|
* @example
|
|
9
27
|
* ```typescript
|
|
@@ -13,11 +31,9 @@
|
|
|
13
31
|
* const doc = await readDocx(docxBytes);
|
|
14
32
|
* const pdfBytes = await docxToPdf(doc);
|
|
15
33
|
* ```
|
|
16
|
-
*
|
|
17
|
-
* Note: This is a simple flow-based renderer. For high-fidelity output,
|
|
18
|
-
* consider using Microsoft Word or LibreOffice.
|
|
19
34
|
*/
|
|
20
|
-
import type { DocxDocument } from "../word/types.js";
|
|
35
|
+
import type { Chart, DocxDocument } from "../word/types.js";
|
|
36
|
+
import type { PdfPageBuilder } from "./builder/document-builder.js";
|
|
21
37
|
/** Options for DOCX → PDF conversion. */
|
|
22
38
|
export interface DocxToPdfOptions {
|
|
23
39
|
/** Page width in points (default: from document sectPr or 612 US Letter). */
|
|
@@ -32,16 +48,68 @@ export interface DocxToPdfOptions {
|
|
|
32
48
|
readonly marginLeft?: number;
|
|
33
49
|
/** Right margin in points (default: from sectPr or 72). */
|
|
34
50
|
readonly marginRight?: number;
|
|
35
|
-
/** Default font family (default: "
|
|
51
|
+
/** Default font family (default: "Helvetica"). */
|
|
36
52
|
readonly defaultFont?: string;
|
|
37
53
|
/** Default font size in points (default: 11). */
|
|
38
54
|
readonly defaultFontSize?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Header margin from top edge in points (default: 36).
|
|
57
|
+
*
|
|
58
|
+
* @deprecated Currently has no effect on the layout-driven render
|
|
59
|
+
* path: header paragraphs are rendered into the page's `marginTop`
|
|
60
|
+
* strip starting at y=0 without an additional offset. Influence
|
|
61
|
+
* header placement by widening `marginTop` instead.
|
|
62
|
+
*/
|
|
63
|
+
readonly headerMargin?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Footer margin from bottom edge in points (default: 36).
|
|
66
|
+
*
|
|
67
|
+
* @deprecated See {@link DocxToPdfOptions.headerMargin}. Footer
|
|
68
|
+
* paragraphs are rendered starting at `pageHeight - marginBottom`.
|
|
69
|
+
*/
|
|
70
|
+
readonly footerMargin?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Optional high-quality chart renderer callback.
|
|
73
|
+
*
|
|
74
|
+
* When provided, Word charts are rendered using the injected renderer
|
|
75
|
+
* instead of the built-in simplified renderer. This allows consumers
|
|
76
|
+
* to plug in the Excel chart renderer for publication-quality output:
|
|
77
|
+
*
|
|
78
|
+
* ```typescript
|
|
79
|
+
* import { installChartSupport } from "excelts/chart";
|
|
80
|
+
* import { createWordChartPdfRenderer } from "excelts/pdf";
|
|
81
|
+
* installChartSupport();
|
|
82
|
+
* const pdfBytes = await docxToPdf(doc, {
|
|
83
|
+
* chartRenderer: createWordChartPdfRenderer()
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* The callback receives the original Word `Chart` definition (taken
|
|
88
|
+
* from the source `ChartContent`), a `PdfPageBuilder`, and the
|
|
89
|
+
* destination rectangle in PDF coordinates. The implementation
|
|
90
|
+
* should draw the chart into the rectangle.
|
|
91
|
+
*
|
|
92
|
+
* Return `false` to decline a chart (the translator then falls back
|
|
93
|
+
* to its built-in placeholder rendering: an outlined rectangle with
|
|
94
|
+
* the chart title centred). Return `void` or `true` to indicate the
|
|
95
|
+
* chart was handled.
|
|
96
|
+
*
|
|
97
|
+
* Note: `chartEx` charts never reach this callback because there is
|
|
98
|
+
* no `Chart` instance to pass; they always render through the
|
|
99
|
+
* translator's built-in path.
|
|
100
|
+
*/
|
|
101
|
+
readonly chartRenderer?: (chart: Chart, page: PdfPageBuilder, rect: {
|
|
102
|
+
x: number;
|
|
103
|
+
y: number;
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
}) => boolean | void;
|
|
39
107
|
}
|
|
40
108
|
/**
|
|
41
|
-
* Convert a DocxDocument to PDF bytes.
|
|
109
|
+
* Convert a `DocxDocument` to PDF bytes.
|
|
42
110
|
*
|
|
43
|
-
* @param doc - The DOCX document model (from readDocx or
|
|
44
|
-
* @param options -
|
|
45
|
-
* @returns
|
|
111
|
+
* @param doc - The DOCX document model (from `readDocx` or `Document.build()`).
|
|
112
|
+
* @param options - Page geometry, fonts, optional chart renderer, …
|
|
113
|
+
* @returns PDF bytes ready to write to disk or stream over HTTP.
|
|
46
114
|
*/
|
|
47
115
|
export declare function docxToPdf(doc: DocxDocument, options?: DocxToPdfOptions): Promise<Uint8Array>;
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Word-to-PDF Bridge
|
|
3
3
|
*
|
|
4
|
-
* Converts a Word document (DocxDocument) to PDF.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Converts a Word document (`DocxDocument`) to PDF.
|
|
5
|
+
*
|
|
6
|
+
* The bridge is a thin translation layer:
|
|
7
|
+
*
|
|
8
|
+
* DocxDocument
|
|
9
|
+
* │
|
|
10
|
+
* │ layoutDocumentFull() ← @word/layout
|
|
11
|
+
* ▼
|
|
12
|
+
* LayoutDocument (positioned PageContent variants)
|
|
13
|
+
* │
|
|
14
|
+
* │ renderLayoutDocumentToPdf() ← ./render-layout-to-pdf
|
|
15
|
+
* ▼
|
|
16
|
+
* PdfDocumentBuilder → bytes
|
|
17
|
+
*
|
|
18
|
+
* Every flow decision (line wrapping, page breaks, table sizing,
|
|
19
|
+
* float positioning) lives in `@word/layout`. This file only handles
|
|
20
|
+
* option mapping, optional chart-renderer auto-detection, and the
|
|
21
|
+
* final `builder.build()` serialization.
|
|
22
|
+
*
|
|
23
|
+
* Like `excel-bridge.ts`, this is the ONLY file in the PDF module that
|
|
24
|
+
* imports from `@word`.
|
|
7
25
|
*
|
|
8
26
|
* @example
|
|
9
27
|
* ```typescript
|
|
@@ -13,292 +31,122 @@
|
|
|
13
31
|
* const doc = await readDocx(docxBytes);
|
|
14
32
|
* const pdfBytes = await docxToPdf(doc);
|
|
15
33
|
* ```
|
|
16
|
-
*
|
|
17
|
-
* Note: This is a simple flow-based renderer. For high-fidelity output,
|
|
18
|
-
* consider using Microsoft Word or LibreOffice.
|
|
19
34
|
*/
|
|
20
|
-
import {
|
|
35
|
+
import { layoutDocumentFull } from "../word/layout/layout-full.js";
|
|
36
|
+
import { renderLayoutDocumentToPdf } from "./render-layout-to-pdf.js";
|
|
21
37
|
/**
|
|
22
|
-
* Convert a DocxDocument to PDF bytes.
|
|
38
|
+
* Convert a `DocxDocument` to PDF bytes.
|
|
23
39
|
*
|
|
24
|
-
* @param doc - The DOCX document model (from readDocx or
|
|
25
|
-
* @param options -
|
|
26
|
-
* @returns
|
|
40
|
+
* @param doc - The DOCX document model (from `readDocx` or `Document.build()`).
|
|
41
|
+
* @param options - Page geometry, fonts, optional chart renderer, …
|
|
42
|
+
* @returns PDF bytes ready to write to disk or stream over HTTP.
|
|
27
43
|
*/
|
|
28
44
|
export async function docxToPdf(doc, options) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
}
|
|
45
|
+
// 1. Resolve effective page geometry. Section properties win unless the
|
|
46
|
+
// caller explicitly overrode an axis. Margins are independent: the
|
|
47
|
+
// section's margins are applied unless the caller overrode them.
|
|
48
|
+
const layoutOptions = mapToLayoutOptions(doc, options);
|
|
49
|
+
// 2. Auto-detect chart support: if no explicit chartRenderer is
|
|
50
|
+
// provided, try to import the high-quality Excel-based renderer.
|
|
51
|
+
let chartRendererForChart = options?.chartRenderer;
|
|
52
|
+
if (!chartRendererForChart) {
|
|
53
|
+
try {
|
|
54
|
+
const mod = await import("./excel-bridge.js");
|
|
55
|
+
if (typeof mod.createWordChartPdfRenderer === "function") {
|
|
56
|
+
chartRendererForChart = mod.createWordChartPdfRenderer();
|
|
189
57
|
}
|
|
190
58
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
typed.type === "movedFromRun" ||
|
|
194
|
-
typed.type === "movedToRun") {
|
|
195
|
-
return typed.run;
|
|
59
|
+
catch {
|
|
60
|
+
// Chart support not available — placeholder rendering takes over.
|
|
196
61
|
}
|
|
197
62
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
catch {
|
|
222
|
-
// Invalid symbol code - skip
|
|
63
|
+
// 3. Run the layout engine. Everything from line wrapping to page
|
|
64
|
+
// breaks happens here; word-bridge no longer carries any of that.
|
|
65
|
+
const layout = layoutDocumentFull(doc, layoutOptions);
|
|
66
|
+
// 4. Build a render-options object for the PDF translator. The
|
|
67
|
+
// chartRenderer adaptation: layout produces `LayoutChart` (which
|
|
68
|
+
// contains the original `ChartContent` in `source`); the public
|
|
69
|
+
// chartRenderer API takes the inner `Chart` model. We unwrap so
|
|
70
|
+
// existing callers keep working unchanged.
|
|
71
|
+
const renderOptions = {
|
|
72
|
+
title: doc.coreProperties?.title,
|
|
73
|
+
author: doc.coreProperties?.creator,
|
|
74
|
+
subject: doc.coreProperties?.subject,
|
|
75
|
+
defaultFont: options?.defaultFont ?? "Helvetica",
|
|
76
|
+
defaultFontSize: options?.defaultFontSize ?? 11,
|
|
77
|
+
chartRenderer: chartRendererForChart
|
|
78
|
+
? (layoutChart, page, rect) => {
|
|
79
|
+
const src = layoutChart.source;
|
|
80
|
+
if (src && src.type === "chart") {
|
|
81
|
+
// Forward the user's return value so a renderer that knows
|
|
82
|
+
// how to draw classic charts but declines a particular
|
|
83
|
+
// family (e.g. unsupported axis combination) gets the
|
|
84
|
+
// translator's placeholder fallback.
|
|
85
|
+
return chartRendererForChart(src.chart, page, rect);
|
|
223
86
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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
|
-
});
|
|
87
|
+
// ChartEx (or absent source) cannot be passed to the user's
|
|
88
|
+
// `Chart`-typed callback. Decline so the translator's
|
|
89
|
+
// placeholder runs instead of leaving a blank slot.
|
|
90
|
+
return false;
|
|
263
91
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
state.cursorY -= 6;
|
|
92
|
+
: undefined
|
|
93
|
+
};
|
|
94
|
+
const builder = renderLayoutDocumentToPdf(layout, renderOptions);
|
|
95
|
+
return builder.build();
|
|
269
96
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
97
|
+
// =============================================================================
|
|
98
|
+
// Internal: option mapping
|
|
99
|
+
// =============================================================================
|
|
100
|
+
/**
|
|
101
|
+
* Resolve the effective page geometry from `DocxToPdfOptions`. Caller-
|
|
102
|
+
* supplied overrides win; otherwise the document's section properties
|
|
103
|
+
* provide the value (with `pageSize.orientation === "landscape"`
|
|
104
|
+
* triggering the conventional width/height swap when sectPr supplies
|
|
105
|
+
* portrait-oriented numbers); otherwise the layout engine's defaults
|
|
106
|
+
* (US Letter, 1-inch margins) take over.
|
|
107
|
+
*
|
|
108
|
+
* `headerMargin` / `footerMargin` are accepted for API compatibility
|
|
109
|
+
* with the previous flow renderer but currently have no effect on the
|
|
110
|
+
* layout-driven path: the layout engine does not yet position header /
|
|
111
|
+
* footer paragraphs against custom inset values, and forwarding the
|
|
112
|
+
* field would silently mislead callers. Pre-existing documents that
|
|
113
|
+
* rely on those parameters still get the section's `headerMargin` /
|
|
114
|
+
* `footerMargin` from sectionProperties when they exist.
|
|
115
|
+
*/
|
|
116
|
+
function mapToLayoutOptions(doc, options) {
|
|
117
|
+
const sectProps = doc.sectionProperties;
|
|
118
|
+
// Section page size, applying the orientation swap so a landscape
|
|
119
|
+
// sectPr written with portrait numerics still ends up wide.
|
|
120
|
+
let sectionPageWidthPt;
|
|
121
|
+
let sectionPageHeightPt;
|
|
122
|
+
if (sectProps?.pageSize) {
|
|
123
|
+
sectionPageWidthPt = twipsToPt(sectProps.pageSize.width);
|
|
124
|
+
sectionPageHeightPt = twipsToPt(sectProps.pageSize.height);
|
|
125
|
+
if (sectProps.pageSize.orientation === "landscape") {
|
|
126
|
+
[sectionPageWidthPt, sectionPageHeightPt] = [sectionPageHeightPt, sectionPageWidthPt];
|
|
275
127
|
}
|
|
276
128
|
}
|
|
277
|
-
|
|
129
|
+
const sectionMarginTopPt = sectProps?.margins?.top != null ? twipsToPt(sectProps.margins.top) : undefined;
|
|
130
|
+
const sectionMarginBottomPt = sectProps?.margins?.bottom != null ? twipsToPt(sectProps.margins.bottom) : undefined;
|
|
131
|
+
const sectionMarginLeftPt = sectProps?.margins?.left != null ? twipsToPt(sectProps.margins.left) : undefined;
|
|
132
|
+
const sectionMarginRightPt = sectProps?.margins?.right != null ? twipsToPt(sectProps.margins.right) : undefined;
|
|
133
|
+
const pageGeometry = {
|
|
134
|
+
pageWidth: options?.pageWidth ?? sectionPageWidthPt,
|
|
135
|
+
pageHeight: options?.pageHeight ?? sectionPageHeightPt,
|
|
136
|
+
marginTop: options?.marginTop ?? sectionMarginTopPt,
|
|
137
|
+
marginBottom: options?.marginBottom ?? sectionMarginBottomPt,
|
|
138
|
+
marginLeft: options?.marginLeft ?? sectionMarginLeftPt,
|
|
139
|
+
marginRight: options?.marginRight ?? sectionMarginRightPt
|
|
140
|
+
};
|
|
141
|
+
const layoutOpts = {};
|
|
142
|
+
// Only attach pageGeometry when at least one axis is actually
|
|
143
|
+
// overridden; otherwise the layout engine should apply its
|
|
144
|
+
// section-property fallbacks unchanged.
|
|
145
|
+
if (Object.values(pageGeometry).some(v => v !== undefined)) {
|
|
146
|
+
layoutOpts.pageGeometry = pageGeometry;
|
|
147
|
+
}
|
|
148
|
+
return layoutOpts;
|
|
278
149
|
}
|
|
279
150
|
function twipsToPt(twips) {
|
|
280
151
|
return twips / 20;
|
|
281
152
|
}
|
|
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
|
-
}
|
|
@@ -14,4 +14,6 @@ export { StreamStateError, StreamTypeError, UnsupportedStreamTypeError } from ".
|
|
|
14
14
|
export { isReadableStream, isWritableStream, isAsyncIterable, isTransformStream } from "./internal/type-guards.js";
|
|
15
15
|
export { onceEvent } from "./internal/event-utils.js";
|
|
16
16
|
export { eventedReadableToAsyncIterableNoDestroy, type EventedReadableLike } from "./internal/evented-readable-to-async-iterable.js";
|
|
17
|
+
export { SinkAdapter } from "./internal/sink-adapter.js";
|
|
18
|
+
export type { AnySink, NodeWritableLike, DuckSinkLike } from "./internal/sink-adapter.js";
|
|
17
19
|
export type { EventEmitterLike } from "./types.js";
|
|
@@ -9,7 +9,8 @@ export { isDestroyed, isErrored, getDefaultHighWaterMark, setDefaultHighWaterMar
|
|
|
9
9
|
export { ChunkedBuilder, TransactionalChunkedBuilder } from "./chunked-builder.js";
|
|
10
10
|
export { collect, text, json, bytes, fromString, fromJSON, fromBytes, transform, filter, isReadableStreamLike, readableStreamToAsyncIterable } from "./utils.browser.js";
|
|
11
11
|
export { StreamStateError, StreamTypeError, UnsupportedStreamTypeError } from "./errors.js";
|
|
12
|
-
// Internal utilities exposed for cross-module use (e.g. archive)
|
|
12
|
+
// Internal utilities exposed for cross-module use (e.g. archive, word/excel writers)
|
|
13
13
|
export { isReadableStream, isWritableStream, isAsyncIterable, isTransformStream } from "./internal/type-guards.js";
|
|
14
14
|
export { onceEvent } from "./internal/event-utils.js";
|
|
15
15
|
export { eventedReadableToAsyncIterableNoDestroy } from "./internal/evented-readable-to-async-iterable.js";
|
|
16
|
+
export { SinkAdapter } from "./internal/sink-adapter.js";
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SinkAdapter — unified writable-sink view.
|
|
3
|
+
*
|
|
4
|
+
* Producers (zip writers, docx streamers, etc.) generate `Uint8Array`
|
|
5
|
+
* chunks and want to push them through a user-supplied destination
|
|
6
|
+
* without caring whether that destination is a Web `WritableStream`,
|
|
7
|
+
* a Node `Writable`, or some duck-typed object.
|
|
8
|
+
*
|
|
9
|
+
* `SinkAdapter` collapses all three into one promise-based API:
|
|
10
|
+
* - `write(chunk)` resolves once the chunk has been accepted by the
|
|
11
|
+
* sink (after awaiting `drain` for Node-style sinks under
|
|
12
|
+
* backpressure, or `writer.ready` for Web streams).
|
|
13
|
+
* - `end()` finalises the sink and resolves on close.
|
|
14
|
+
* - The first sink error is captured and re-thrown from the next
|
|
15
|
+
* `write` / `end` so callers can't lose it.
|
|
16
|
+
*
|
|
17
|
+
* Producers are expected to either:
|
|
18
|
+
* - drive `await sink.write(chunk)` directly (preferred — gives
|
|
19
|
+
* true end-to-end backpressure), or
|
|
20
|
+
* - chain writes onto a single shared promise so a synchronous
|
|
21
|
+
* emit callback can still feed the adapter without blocking.
|
|
22
|
+
*/
|
|
23
|
+
import type { EventEmitterLike } from "../types.js";
|
|
24
|
+
/**
|
|
25
|
+
* Loose Node `Writable`-like contract. Matches `stream.Writable` but only
|
|
26
|
+
* the subset SinkAdapter touches; intentionally avoids depending on
|
|
27
|
+
* `node:stream` so the adapter compiles in browsers.
|
|
28
|
+
*/
|
|
29
|
+
export interface NodeWritableLike extends EventEmitterLike {
|
|
30
|
+
write(chunk: Uint8Array, cb?: (err?: Error | null) => void): boolean;
|
|
31
|
+
end(cb?: () => void): unknown;
|
|
32
|
+
destroyed?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Object that implements just enough of a writable to be useful: a
|
|
36
|
+
* `write` returning sync bool / Promise, plus `end`. Used as a fallback
|
|
37
|
+
* for legacy producers that don't fit either Node or Web streams.
|
|
38
|
+
*/
|
|
39
|
+
export interface DuckSinkLike extends EventEmitterLike {
|
|
40
|
+
write(chunk: Uint8Array): boolean | Promise<boolean>;
|
|
41
|
+
end(): unknown;
|
|
42
|
+
}
|
|
43
|
+
/** Anything SinkAdapter knows how to drive. */
|
|
44
|
+
export type AnySink = WritableStream<Uint8Array> | NodeWritableLike | DuckSinkLike;
|
|
45
|
+
/** Unified sink view with awaited write + error capture. */
|
|
46
|
+
export declare class SinkAdapter {
|
|
47
|
+
private readonly _kind;
|
|
48
|
+
private readonly _webWriter?;
|
|
49
|
+
private readonly _nodeSink?;
|
|
50
|
+
private readonly _duckSink?;
|
|
51
|
+
private _error;
|
|
52
|
+
private _ended;
|
|
53
|
+
constructor(sink: AnySink);
|
|
54
|
+
/**
|
|
55
|
+
* The first error reported by the sink (or `null`). Producers that
|
|
56
|
+
* cannot await `write()` (synchronous emit callbacks) should poll
|
|
57
|
+
* this between operations.
|
|
58
|
+
*/
|
|
59
|
+
get error(): Error | null;
|
|
60
|
+
write(chunk: Uint8Array): Promise<void>;
|
|
61
|
+
end(): Promise<void>;
|
|
62
|
+
private _captureError;
|
|
63
|
+
private _throwIfErrored;
|
|
64
|
+
private _attachErrorListener;
|
|
65
|
+
}
|