docier-web 0.1.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/COMMERCIAL.md +45 -0
- package/LICENSE +50 -0
- package/LICENSE.AGPL-3.0 +661 -0
- package/README.md +239 -0
- package/dist/api/commands.d.ts +46 -0
- package/dist/api/commands.d.ts.map +1 -0
- package/dist/api/commands.js +274 -0
- package/dist/api/commands.js.map +1 -0
- package/dist/api/config.d.ts +14 -0
- package/dist/api/config.d.ts.map +1 -0
- package/dist/api/config.js +248 -0
- package/dist/api/config.js.map +1 -0
- package/dist/api/constants.d.ts +12 -0
- package/dist/api/constants.d.ts.map +1 -0
- package/dist/api/constants.js +45 -0
- package/dist/api/constants.js.map +1 -0
- package/dist/api/editor.d.ts +43 -0
- package/dist/api/editor.d.ts.map +1 -0
- package/dist/api/editor.js +983 -0
- package/dist/api/editor.js.map +1 -0
- package/dist/api/errors.d.ts +25 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +106 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/events.d.ts +25 -0
- package/dist/api/events.d.ts.map +1 -0
- package/dist/api/events.js +182 -0
- package/dist/api/events.js.map +1 -0
- package/dist/api/history.d.ts +40 -0
- package/dist/api/history.d.ts.map +1 -0
- package/dist/api/history.js +91 -0
- package/dist/api/history.js.map +1 -0
- package/dist/api/index.d.ts +15 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +10 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/localize.d.ts +12 -0
- package/dist/api/localize.d.ts.map +1 -0
- package/dist/api/localize.js +45 -0
- package/dist/api/localize.js.map +1 -0
- package/dist/api/types.d.ts +453 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/edit/actions.d.ts +52 -0
- package/dist/edit/actions.d.ts.map +1 -0
- package/dist/edit/actions.js +319 -0
- package/dist/edit/actions.js.map +1 -0
- package/dist/edit/areas/comment.d.ts +20 -0
- package/dist/edit/areas/comment.d.ts.map +1 -0
- package/dist/edit/areas/comment.js +199 -0
- package/dist/edit/areas/comment.js.map +1 -0
- package/dist/edit/areas/content.d.ts +12 -0
- package/dist/edit/areas/content.d.ts.map +1 -0
- package/dist/edit/areas/content.js +78 -0
- package/dist/edit/areas/content.js.map +1 -0
- package/dist/edit/areas/index.d.ts +19 -0
- package/dist/edit/areas/index.d.ts.map +1 -0
- package/dist/edit/areas/index.js +42 -0
- package/dist/edit/areas/index.js.map +1 -0
- package/dist/edit/areas/insert.d.ts +42 -0
- package/dist/edit/areas/insert.d.ts.map +1 -0
- package/dist/edit/areas/insert.js +265 -0
- package/dist/edit/areas/insert.js.map +1 -0
- package/dist/edit/areas/note.d.ts +12 -0
- package/dist/edit/areas/note.d.ts.map +1 -0
- package/dist/edit/areas/note.js +122 -0
- package/dist/edit/areas/note.js.map +1 -0
- package/dist/edit/areas/numbering.d.ts +14 -0
- package/dist/edit/areas/numbering.d.ts.map +1 -0
- package/dist/edit/areas/numbering.js +119 -0
- package/dist/edit/areas/numbering.js.map +1 -0
- package/dist/edit/areas/object.d.ts +24 -0
- package/dist/edit/areas/object.d.ts.map +1 -0
- package/dist/edit/areas/object.js +274 -0
- package/dist/edit/areas/object.js.map +1 -0
- package/dist/edit/areas/page.d.ts +33 -0
- package/dist/edit/areas/page.d.ts.map +1 -0
- package/dist/edit/areas/page.js +170 -0
- package/dist/edit/areas/page.js.map +1 -0
- package/dist/edit/areas/paragraph.d.ts +27 -0
- package/dist/edit/areas/paragraph.d.ts.map +1 -0
- package/dist/edit/areas/paragraph.js +205 -0
- package/dist/edit/areas/paragraph.js.map +1 -0
- package/dist/edit/areas/proof.d.ts +7 -0
- package/dist/edit/areas/proof.d.ts.map +1 -0
- package/dist/edit/areas/proof.js +71 -0
- package/dist/edit/areas/proof.js.map +1 -0
- package/dist/edit/areas/region.d.ts +4 -0
- package/dist/edit/areas/region.d.ts.map +1 -0
- package/dist/edit/areas/region.js +139 -0
- package/dist/edit/areas/region.js.map +1 -0
- package/dist/edit/areas/style.d.ts +7 -0
- package/dist/edit/areas/style.d.ts.map +1 -0
- package/dist/edit/areas/style.js +33 -0
- package/dist/edit/areas/style.js.map +1 -0
- package/dist/edit/areas/support.d.ts +42 -0
- package/dist/edit/areas/support.d.ts.map +1 -0
- package/dist/edit/areas/support.js +102 -0
- package/dist/edit/areas/support.js.map +1 -0
- package/dist/edit/areas/table.d.ts +55 -0
- package/dist/edit/areas/table.d.ts.map +1 -0
- package/dist/edit/areas/table.js +910 -0
- package/dist/edit/areas/table.js.map +1 -0
- package/dist/edit/areas/unsupported.d.ts +5 -0
- package/dist/edit/areas/unsupported.d.ts.map +1 -0
- package/dist/edit/areas/unsupported.js +318 -0
- package/dist/edit/areas/unsupported.js.map +1 -0
- package/dist/edit/caret.d.ts +44 -0
- package/dist/edit/caret.d.ts.map +1 -0
- package/dist/edit/caret.js +136 -0
- package/dist/edit/caret.js.map +1 -0
- package/dist/edit/clipboard/commands.d.ts +29 -0
- package/dist/edit/clipboard/commands.d.ts.map +1 -0
- package/dist/edit/clipboard/commands.js +289 -0
- package/dist/edit/clipboard/commands.js.map +1 -0
- package/dist/edit/clipboard/fragment.d.ts +19 -0
- package/dist/edit/clipboard/fragment.d.ts.map +1 -0
- package/dist/edit/clipboard/fragment.js +365 -0
- package/dist/edit/clipboard/fragment.js.map +1 -0
- package/dist/edit/clipboard/html-export.d.ts +6 -0
- package/dist/edit/clipboard/html-export.d.ts.map +1 -0
- package/dist/edit/clipboard/html-export.js +167 -0
- package/dist/edit/clipboard/html-export.js.map +1 -0
- package/dist/edit/clipboard/html-import.d.ts +16 -0
- package/dist/edit/clipboard/html-import.d.ts.map +1 -0
- package/dist/edit/clipboard/html-import.js +744 -0
- package/dist/edit/clipboard/html-import.js.map +1 -0
- package/dist/edit/clipboard/index.d.ts +15 -0
- package/dist/edit/clipboard/index.d.ts.map +1 -0
- package/dist/edit/clipboard/index.js +9 -0
- package/dist/edit/clipboard/index.js.map +1 -0
- package/dist/edit/clipboard/insert.d.ts +18 -0
- package/dist/edit/clipboard/insert.d.ts.map +1 -0
- package/dist/edit/clipboard/insert.js +282 -0
- package/dist/edit/clipboard/insert.js.map +1 -0
- package/dist/edit/clipboard/text.d.ts +12 -0
- package/dist/edit/clipboard/text.d.ts.map +1 -0
- package/dist/edit/clipboard/text.js +102 -0
- package/dist/edit/clipboard/text.js.map +1 -0
- package/dist/edit/clipboard/transfer.d.ts +16 -0
- package/dist/edit/clipboard/transfer.d.ts.map +1 -0
- package/dist/edit/clipboard/transfer.js +112 -0
- package/dist/edit/clipboard/transfer.js.map +1 -0
- package/dist/edit/clipboard/types.d.ts +62 -0
- package/dist/edit/clipboard/types.d.ts.map +1 -0
- package/dist/edit/clipboard/types.js +40 -0
- package/dist/edit/clipboard/types.js.map +1 -0
- package/dist/edit/commands.d.ts +27 -0
- package/dist/edit/commands.d.ts.map +1 -0
- package/dist/edit/commands.js +641 -0
- package/dist/edit/commands.js.map +1 -0
- package/dist/edit/containers.d.ts +17 -0
- package/dist/edit/containers.d.ts.map +1 -0
- package/dist/edit/containers.js +108 -0
- package/dist/edit/containers.js.map +1 -0
- package/dist/edit/index.d.ts +33 -0
- package/dist/edit/index.d.ts.map +1 -0
- package/dist/edit/index.js +18 -0
- package/dist/edit/index.js.map +1 -0
- package/dist/edit/input.d.ts +53 -0
- package/dist/edit/input.d.ts.map +1 -0
- package/dist/edit/input.js +1035 -0
- package/dist/edit/input.js.map +1 -0
- package/dist/edit/inspect.d.ts +39 -0
- package/dist/edit/inspect.d.ts.map +1 -0
- package/dist/edit/inspect.js +119 -0
- package/dist/edit/inspect.js.map +1 -0
- package/dist/edit/list.d.ts +33 -0
- package/dist/edit/list.d.ts.map +1 -0
- package/dist/edit/list.js +399 -0
- package/dist/edit/list.js.map +1 -0
- package/dist/edit/mutation.d.ts +57 -0
- package/dist/edit/mutation.d.ts.map +1 -0
- package/dist/edit/mutation.js +468 -0
- package/dist/edit/mutation.js.map +1 -0
- package/dist/edit/navigation.d.ts +34 -0
- package/dist/edit/navigation.d.ts.map +1 -0
- package/dist/edit/navigation.js +209 -0
- package/dist/edit/navigation.js.map +1 -0
- package/dist/edit/object-resize.d.ts +56 -0
- package/dist/edit/object-resize.d.ts.map +1 -0
- package/dist/edit/object-resize.js +189 -0
- package/dist/edit/object-resize.js.map +1 -0
- package/dist/edit/objects.d.ts +19 -0
- package/dist/edit/objects.d.ts.map +1 -0
- package/dist/edit/objects.js +58 -0
- package/dist/edit/objects.js.map +1 -0
- package/dist/edit/positions.d.ts +63 -0
- package/dist/edit/positions.d.ts.map +1 -0
- package/dist/edit/positions.js +267 -0
- package/dist/edit/positions.js.map +1 -0
- package/dist/edit/search.d.ts +19 -0
- package/dist/edit/search.d.ts.map +1 -0
- package/dist/edit/search.js +65 -0
- package/dist/edit/search.js.map +1 -0
- package/dist/edit/selection.d.ts +44 -0
- package/dist/edit/selection.d.ts.map +1 -0
- package/dist/edit/selection.js +126 -0
- package/dist/edit/selection.js.map +1 -0
- package/dist/edit/session.d.ts +84 -0
- package/dist/edit/session.d.ts.map +1 -0
- package/dist/edit/session.js +703 -0
- package/dist/edit/session.js.map +1 -0
- package/dist/edit/tables.d.ts +28 -0
- package/dist/edit/tables.d.ts.map +1 -0
- package/dist/edit/tables.js +169 -0
- package/dist/edit/tables.js.map +1 -0
- package/dist/edit/words.d.ts +17 -0
- package/dist/edit/words.d.ts.map +1 -0
- package/dist/edit/words.js +102 -0
- package/dist/edit/words.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/assembly.d.ts +30 -0
- package/dist/layout/assembly.d.ts.map +1 -0
- package/dist/layout/assembly.js +87 -0
- package/dist/layout/assembly.js.map +1 -0
- package/dist/layout/atoms.d.ts +46 -0
- package/dist/layout/atoms.d.ts.map +1 -0
- package/dist/layout/atoms.js +238 -0
- package/dist/layout/atoms.js.map +1 -0
- package/dist/layout/breaking.d.ts +25 -0
- package/dist/layout/breaking.d.ts.map +1 -0
- package/dist/layout/breaking.js +112 -0
- package/dist/layout/breaking.js.map +1 -0
- package/dist/layout/fields.d.ts +22 -0
- package/dist/layout/fields.d.ts.map +1 -0
- package/dist/layout/fields.js +74 -0
- package/dist/layout/fields.js.map +1 -0
- package/dist/layout/finalize.d.ts +51 -0
- package/dist/layout/finalize.d.ts.map +1 -0
- package/dist/layout/finalize.js +282 -0
- package/dist/layout/finalize.js.map +1 -0
- package/dist/layout/fonts.d.ts +26 -0
- package/dist/layout/fonts.d.ts.map +1 -0
- package/dist/layout/fonts.js +69 -0
- package/dist/layout/fonts.js.map +1 -0
- package/dist/layout/format.d.ts +51 -0
- package/dist/layout/format.d.ts.map +1 -0
- package/dist/layout/format.js +99 -0
- package/dist/layout/format.js.map +1 -0
- package/dist/layout/freeze.d.ts +2 -0
- package/dist/layout/freeze.d.ts.map +1 -0
- package/dist/layout/freeze.js +21 -0
- package/dist/layout/freeze.js.map +1 -0
- package/dist/layout/frozen-map.d.ts +8 -0
- package/dist/layout/frozen-map.d.ts.map +1 -0
- package/dist/layout/frozen-map.js +21 -0
- package/dist/layout/frozen-map.js.map +1 -0
- package/dist/layout/hash.d.ts +7 -0
- package/dist/layout/hash.d.ts.map +1 -0
- package/dist/layout/hash.js +0 -0
- package/dist/layout/hash.js.map +1 -0
- package/dist/layout/header-footer.d.ts +51 -0
- package/dist/layout/header-footer.d.ts.map +1 -0
- package/dist/layout/header-footer.js +115 -0
- package/dist/layout/header-footer.js.map +1 -0
- package/dist/layout/index.d.ts +59 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +32 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/indices.d.ts +20 -0
- package/dist/layout/indices.d.ts.map +1 -0
- package/dist/layout/indices.js +73 -0
- package/dist/layout/indices.js.map +1 -0
- package/dist/layout/ingest.d.ts +99 -0
- package/dist/layout/ingest.d.ts.map +1 -0
- package/dist/layout/ingest.js +338 -0
- package/dist/layout/ingest.js.map +1 -0
- package/dist/layout/intrinsic.d.ts +20 -0
- package/dist/layout/intrinsic.d.ts.map +1 -0
- package/dist/layout/intrinsic.js +67 -0
- package/dist/layout/intrinsic.js.map +1 -0
- package/dist/layout/justify.d.ts +6 -0
- package/dist/layout/justify.d.ts.map +1 -0
- package/dist/layout/justify.js +49 -0
- package/dist/layout/justify.js.map +1 -0
- package/dist/layout/line-geometry.d.ts +24 -0
- package/dist/layout/line-geometry.d.ts.map +1 -0
- package/dist/layout/line-geometry.js +136 -0
- package/dist/layout/line-geometry.js.map +1 -0
- package/dist/layout/numbering.d.ts +28 -0
- package/dist/layout/numbering.d.ts.map +1 -0
- package/dist/layout/numbering.js +303 -0
- package/dist/layout/numbering.js.map +1 -0
- package/dist/layout/objects.d.ts +7 -0
- package/dist/layout/objects.d.ts.map +1 -0
- package/dist/layout/objects.js +107 -0
- package/dist/layout/objects.js.map +1 -0
- package/dist/layout/page-geometry.d.ts +7 -0
- package/dist/layout/page-geometry.d.ts.map +1 -0
- package/dist/layout/page-geometry.js +17 -0
- package/dist/layout/page-geometry.js.map +1 -0
- package/dist/layout/paginate.d.ts +63 -0
- package/dist/layout/paginate.d.ts.map +1 -0
- package/dist/layout/paginate.js +354 -0
- package/dist/layout/paginate.js.map +1 -0
- package/dist/layout/paint.d.ts +10 -0
- package/dist/layout/paint.d.ts.map +1 -0
- package/dist/layout/paint.js +56 -0
- package/dist/layout/paint.js.map +1 -0
- package/dist/layout/paragraph-blocks.d.ts +36 -0
- package/dist/layout/paragraph-blocks.d.ts.map +1 -0
- package/dist/layout/paragraph-blocks.js +244 -0
- package/dist/layout/paragraph-blocks.js.map +1 -0
- package/dist/layout/pipeline.d.ts +19 -0
- package/dist/layout/pipeline.d.ts.map +1 -0
- package/dist/layout/pipeline.js +620 -0
- package/dist/layout/pipeline.js.map +1 -0
- package/dist/layout/sections.d.ts +29 -0
- package/dist/layout/sections.d.ts.map +1 -0
- package/dist/layout/sections.js +109 -0
- package/dist/layout/sections.js.map +1 -0
- package/dist/layout/table-borders.d.ts +28 -0
- package/dist/layout/table-borders.d.ts.map +1 -0
- package/dist/layout/table-borders.js +116 -0
- package/dist/layout/table-borders.js.map +1 -0
- package/dist/layout/table-columns.d.ts +33 -0
- package/dist/layout/table-columns.d.ts.map +1 -0
- package/dist/layout/table-columns.js +265 -0
- package/dist/layout/table-columns.js.map +1 -0
- package/dist/layout/table-flow.d.ts +51 -0
- package/dist/layout/table-flow.d.ts.map +1 -0
- package/dist/layout/table-flow.js +343 -0
- package/dist/layout/table-flow.js.map +1 -0
- package/dist/layout/table-ingest.d.ts +90 -0
- package/dist/layout/table-ingest.d.ts.map +1 -0
- package/dist/layout/table-ingest.js +272 -0
- package/dist/layout/table-ingest.js.map +1 -0
- package/dist/layout/table-prepare.d.ts +111 -0
- package/dist/layout/table-prepare.d.ts.map +1 -0
- package/dist/layout/table-prepare.js +485 -0
- package/dist/layout/table-prepare.js.map +1 -0
- package/dist/layout/types.d.ts +250 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +4 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/measure/deterministic.d.ts +19 -0
- package/dist/measure/deterministic.d.ts.map +1 -0
- package/dist/measure/deterministic.js +124 -0
- package/dist/measure/deterministic.js.map +1 -0
- package/dist/measure/font.d.ts +15 -0
- package/dist/measure/font.d.ts.map +1 -0
- package/dist/measure/font.js +120 -0
- package/dist/measure/font.js.map +1 -0
- package/dist/measure/index.d.ts +9 -0
- package/dist/measure/index.d.ts.map +1 -0
- package/dist/measure/index.js +5 -0
- package/dist/measure/index.js.map +1 -0
- package/dist/measure/measurer.d.ts +25 -0
- package/dist/measure/measurer.d.ts.map +1 -0
- package/dist/measure/measurer.js +50 -0
- package/dist/measure/measurer.js.map +1 -0
- package/dist/measure/metrics.d.ts +42 -0
- package/dist/measure/metrics.d.ts.map +1 -0
- package/dist/measure/metrics.js +48 -0
- package/dist/measure/metrics.js.map +1 -0
- package/dist/model/blocks/block-node.d.ts +25 -0
- package/dist/model/blocks/block-node.d.ts.map +1 -0
- package/dist/model/blocks/block-node.js +42 -0
- package/dist/model/blocks/block-node.js.map +1 -0
- package/dist/model/blocks/content-control.d.ts +77 -0
- package/dist/model/blocks/content-control.d.ts.map +1 -0
- package/dist/model/blocks/content-control.js +433 -0
- package/dist/model/blocks/content-control.js.map +1 -0
- package/dist/model/blocks/index.d.ts +9 -0
- package/dist/model/blocks/index.d.ts.map +1 -0
- package/dist/model/blocks/index.js +5 -0
- package/dist/model/blocks/index.js.map +1 -0
- package/dist/model/blocks/paragraph.d.ts +48 -0
- package/dist/model/blocks/paragraph.d.ts.map +1 -0
- package/dist/model/blocks/paragraph.js +217 -0
- package/dist/model/blocks/paragraph.js.map +1 -0
- package/dist/model/blocks/table.d.ts +86 -0
- package/dist/model/blocks/table.d.ts.map +1 -0
- package/dist/model/blocks/table.js +414 -0
- package/dist/model/blocks/table.js.map +1 -0
- package/dist/model/context.d.ts +15 -0
- package/dist/model/context.d.ts.map +1 -0
- package/dist/model/context.js +26 -0
- package/dist/model/context.js.map +1 -0
- package/dist/model/diagnostics.d.ts +26 -0
- package/dist/model/diagnostics.d.ts.map +1 -0
- package/dist/model/diagnostics.js +28 -0
- package/dist/model/diagnostics.js.map +1 -0
- package/dist/model/document.d.ts +81 -0
- package/dist/model/document.d.ts.map +1 -0
- package/dist/model/document.js +453 -0
- package/dist/model/document.js.map +1 -0
- package/dist/model/ids.d.ts +11 -0
- package/dist/model/ids.d.ts.map +1 -0
- package/dist/model/ids.js +16 -0
- package/dist/model/ids.js.map +1 -0
- package/dist/model/index.d.ts +22 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +15 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/inline/alternate-content.d.ts +51 -0
- package/dist/model/inline/alternate-content.d.ts.map +1 -0
- package/dist/model/inline/alternate-content.js +73 -0
- package/dist/model/inline/alternate-content.js.map +1 -0
- package/dist/model/inline/annotation.d.ts +16 -0
- package/dist/model/inline/annotation.d.ts.map +1 -0
- package/dist/model/inline/annotation.js +47 -0
- package/dist/model/inline/annotation.js.map +1 -0
- package/dist/model/inline/field.d.ts +34 -0
- package/dist/model/inline/field.d.ts.map +1 -0
- package/dist/model/inline/field.js +150 -0
- package/dist/model/inline/field.js.map +1 -0
- package/dist/model/inline/index.d.ts +11 -0
- package/dist/model/inline/index.d.ts.map +1 -0
- package/dist/model/inline/index.js +6 -0
- package/dist/model/inline/index.js.map +1 -0
- package/dist/model/inline/nodes.d.ts +147 -0
- package/dist/model/inline/nodes.d.ts.map +1 -0
- package/dist/model/inline/nodes.js +492 -0
- package/dist/model/inline/nodes.js.map +1 -0
- package/dist/model/inline/run-content.d.ts +114 -0
- package/dist/model/inline/run-content.d.ts.map +1 -0
- package/dist/model/inline/run-content.js +368 -0
- package/dist/model/inline/run-content.js.map +1 -0
- package/dist/model/numbering/abstract-numbering.d.ts +24 -0
- package/dist/model/numbering/abstract-numbering.d.ts.map +1 -0
- package/dist/model/numbering/abstract-numbering.js +66 -0
- package/dist/model/numbering/abstract-numbering.js.map +1 -0
- package/dist/model/numbering/index.d.ts +7 -0
- package/dist/model/numbering/index.d.ts.map +1 -0
- package/dist/model/numbering/index.js +5 -0
- package/dist/model/numbering/index.js.map +1 -0
- package/dist/model/numbering/instance.d.ts +38 -0
- package/dist/model/numbering/instance.d.ts.map +1 -0
- package/dist/model/numbering/instance.js +86 -0
- package/dist/model/numbering/instance.js.map +1 -0
- package/dist/model/numbering/level.d.ts +44 -0
- package/dist/model/numbering/level.d.ts.map +1 -0
- package/dist/model/numbering/level.js +115 -0
- package/dist/model/numbering/level.js.map +1 -0
- package/dist/model/numbering/numbering-part.d.ts +32 -0
- package/dist/model/numbering/numbering-part.d.ts.map +1 -0
- package/dist/model/numbering/numbering-part.js +157 -0
- package/dist/model/numbering/numbering-part.js.map +1 -0
- package/dist/model/properties/common.d.ts +142 -0
- package/dist/model/properties/common.d.ts.map +1 -0
- package/dist/model/properties/common.js +377 -0
- package/dist/model/properties/common.js.map +1 -0
- package/dist/model/properties/index.d.ts +14 -0
- package/dist/model/properties/index.d.ts.map +1 -0
- package/dist/model/properties/index.js +8 -0
- package/dist/model/properties/index.js.map +1 -0
- package/dist/model/properties/paragraph-properties.d.ts +113 -0
- package/dist/model/properties/paragraph-properties.d.ts.map +1 -0
- package/dist/model/properties/paragraph-properties.js +331 -0
- package/dist/model/properties/paragraph-properties.js.map +1 -0
- package/dist/model/properties/property-keys.d.ts +18 -0
- package/dist/model/properties/property-keys.d.ts.map +1 -0
- package/dist/model/properties/property-keys.js +166 -0
- package/dist/model/properties/property-keys.js.map +1 -0
- package/dist/model/properties/property.d.ts +37 -0
- package/dist/model/properties/property.d.ts.map +1 -0
- package/dist/model/properties/property.js +132 -0
- package/dist/model/properties/property.js.map +1 -0
- package/dist/model/properties/run-properties.d.ts +74 -0
- package/dist/model/properties/run-properties.d.ts.map +1 -0
- package/dist/model/properties/run-properties.js +208 -0
- package/dist/model/properties/run-properties.js.map +1 -0
- package/dist/model/properties/section-properties.d.ts +82 -0
- package/dist/model/properties/section-properties.d.ts.map +1 -0
- package/dist/model/properties/section-properties.js +250 -0
- package/dist/model/properties/section-properties.js.map +1 -0
- package/dist/model/properties/table-properties.d.ts +105 -0
- package/dist/model/properties/table-properties.d.ts.map +1 -0
- package/dist/model/properties/table-properties.js +301 -0
- package/dist/model/properties/table-properties.js.map +1 -0
- package/dist/model/schema-order.d.ts +15 -0
- package/dist/model/schema-order.d.ts.map +1 -0
- package/dist/model/schema-order.js +526 -0
- package/dist/model/schema-order.js.map +1 -0
- package/dist/model/settings.d.ts +46 -0
- package/dist/model/settings.d.ts.map +1 -0
- package/dist/model/settings.js +159 -0
- package/dist/model/settings.js.map +1 -0
- package/dist/model/story.d.ts +61 -0
- package/dist/model/story.d.ts.map +1 -0
- package/dist/model/story.js +159 -0
- package/dist/model/story.js.map +1 -0
- package/dist/model/styles/cascade.d.ts +120 -0
- package/dist/model/styles/cascade.d.ts.map +1 -0
- package/dist/model/styles/cascade.js +636 -0
- package/dist/model/styles/cascade.js.map +1 -0
- package/dist/model/styles/index.d.ts +9 -0
- package/dist/model/styles/index.d.ts.map +1 -0
- package/dist/model/styles/index.js +5 -0
- package/dist/model/styles/index.js.map +1 -0
- package/dist/model/styles/resolved.d.ts +112 -0
- package/dist/model/styles/resolved.d.ts.map +1 -0
- package/dist/model/styles/resolved.js +360 -0
- package/dist/model/styles/resolved.js.map +1 -0
- package/dist/model/styles/style.d.ts +67 -0
- package/dist/model/styles/style.d.ts.map +1 -0
- package/dist/model/styles/style.js +281 -0
- package/dist/model/styles/style.js.map +1 -0
- package/dist/model/styles/styles-part.d.ts +53 -0
- package/dist/model/styles/styles-part.d.ts.map +1 -0
- package/dist/model/styles/styles-part.js +263 -0
- package/dist/model/styles/styles-part.js.map +1 -0
- package/dist/model/view.d.ts +18 -0
- package/dist/model/view.d.ts.map +1 -0
- package/dist/model/view.js +38 -0
- package/dist/model/view.js.map +1 -0
- package/dist/model/xml.d.ts +23 -0
- package/dist/model/xml.d.ts.map +1 -0
- package/dist/model/xml.js +87 -0
- package/dist/model/xml.js.map +1 -0
- package/dist/ooxml/bytes.d.ts +15 -0
- package/dist/ooxml/bytes.d.ts.map +1 -0
- package/dist/ooxml/bytes.js +92 -0
- package/dist/ooxml/bytes.js.map +1 -0
- package/dist/ooxml/content-types.d.ts +66 -0
- package/dist/ooxml/content-types.d.ts.map +1 -0
- package/dist/ooxml/content-types.js +328 -0
- package/dist/ooxml/content-types.js.map +1 -0
- package/dist/ooxml/drawing.d.ts +35 -0
- package/dist/ooxml/drawing.d.ts.map +1 -0
- package/dist/ooxml/drawing.js +245 -0
- package/dist/ooxml/drawing.js.map +1 -0
- package/dist/ooxml/errors.d.ts +21 -0
- package/dist/ooxml/errors.d.ts.map +1 -0
- package/dist/ooxml/errors.js +21 -0
- package/dist/ooxml/errors.js.map +1 -0
- package/dist/ooxml/index.d.ts +22 -0
- package/dist/ooxml/index.d.ts.map +1 -0
- package/dist/ooxml/index.js +14 -0
- package/dist/ooxml/index.js.map +1 -0
- package/dist/ooxml/namespaces.d.ts +88 -0
- package/dist/ooxml/namespaces.d.ts.map +1 -0
- package/dist/ooxml/namespaces.js +165 -0
- package/dist/ooxml/namespaces.js.map +1 -0
- package/dist/ooxml/package.d.ts +117 -0
- package/dist/ooxml/package.d.ts.map +1 -0
- package/dist/ooxml/package.js +830 -0
- package/dist/ooxml/package.js.map +1 -0
- package/dist/ooxml/part-kinds.d.ts +41 -0
- package/dist/ooxml/part-kinds.d.ts.map +1 -0
- package/dist/ooxml/part-kinds.js +540 -0
- package/dist/ooxml/part-kinds.js.map +1 -0
- package/dist/ooxml/part.d.ts +68 -0
- package/dist/ooxml/part.d.ts.map +1 -0
- package/dist/ooxml/part.js +180 -0
- package/dist/ooxml/part.js.map +1 -0
- package/dist/ooxml/relationships.d.ts +91 -0
- package/dist/ooxml/relationships.d.ts.map +1 -0
- package/dist/ooxml/relationships.js +471 -0
- package/dist/ooxml/relationships.js.map +1 -0
- package/dist/ooxml/sha256.d.ts +6 -0
- package/dist/ooxml/sha256.d.ts.map +1 -0
- package/dist/ooxml/sha256.js +107 -0
- package/dist/ooxml/sha256.js.map +1 -0
- package/dist/ooxml/xml/index.d.ts +8 -0
- package/dist/ooxml/xml/index.d.ts.map +1 -0
- package/dist/ooxml/xml/index.js +6 -0
- package/dist/ooxml/xml/index.js.map +1 -0
- package/dist/ooxml/xml/io.d.ts +15 -0
- package/dist/ooxml/xml/io.d.ts.map +1 -0
- package/dist/ooxml/xml/io.js +122 -0
- package/dist/ooxml/xml/io.js.map +1 -0
- package/dist/ooxml/xml/nodes.d.ts +97 -0
- package/dist/ooxml/xml/nodes.d.ts.map +1 -0
- package/dist/ooxml/xml/nodes.js +109 -0
- package/dist/ooxml/xml/nodes.js.map +1 -0
- package/dist/ooxml/xml/parse.d.ts +7 -0
- package/dist/ooxml/xml/parse.d.ts.map +1 -0
- package/dist/ooxml/xml/parse.js +529 -0
- package/dist/ooxml/xml/parse.js.map +1 -0
- package/dist/ooxml/xml/serialize.d.ts +11 -0
- package/dist/ooxml/xml/serialize.d.ts.map +1 -0
- package/dist/ooxml/xml/serialize.js +94 -0
- package/dist/ooxml/xml/serialize.js.map +1 -0
- package/dist/ooxml/xml/tree.d.ts +10 -0
- package/dist/ooxml/xml/tree.d.ts.map +1 -0
- package/dist/ooxml/xml/tree.js +67 -0
- package/dist/ooxml/xml/tree.js.map +1 -0
- package/dist/ooxml/zip/crc32.d.ts +2 -0
- package/dist/ooxml/zip/crc32.d.ts.map +1 -0
- package/dist/ooxml/zip/crc32.js +20 -0
- package/dist/ooxml/zip/crc32.js.map +1 -0
- package/dist/ooxml/zip/deflate.d.ts +23 -0
- package/dist/ooxml/zip/deflate.d.ts.map +1 -0
- package/dist/ooxml/zip/deflate.js +172 -0
- package/dist/ooxml/zip/deflate.js.map +1 -0
- package/dist/ooxml/zip/index.d.ts +10 -0
- package/dist/ooxml/zip/index.d.ts.map +1 -0
- package/dist/ooxml/zip/index.js +6 -0
- package/dist/ooxml/zip/index.js.map +1 -0
- package/dist/ooxml/zip/read.d.ts +17 -0
- package/dist/ooxml/zip/read.d.ts.map +1 -0
- package/dist/ooxml/zip/read.js +345 -0
- package/dist/ooxml/zip/read.js.map +1 -0
- package/dist/ooxml/zip/types.d.ts +66 -0
- package/dist/ooxml/zip/types.d.ts.map +1 -0
- package/dist/ooxml/zip/types.js +26 -0
- package/dist/ooxml/zip/types.js.map +1 -0
- package/dist/ooxml/zip/write.d.ts +17 -0
- package/dist/ooxml/zip/write.d.ts.map +1 -0
- package/dist/ooxml/zip/write.js +175 -0
- package/dist/ooxml/zip/write.js.map +1 -0
- package/dist/pdf/abort.d.ts +2 -0
- package/dist/pdf/abort.d.ts.map +1 -0
- package/dist/pdf/abort.js +7 -0
- package/dist/pdf/abort.js.map +1 -0
- package/dist/pdf/bytes.d.ts +7 -0
- package/dist/pdf/bytes.d.ts.map +1 -0
- package/dist/pdf/bytes.js +54 -0
- package/dist/pdf/bytes.js.map +1 -0
- package/dist/pdf/color.d.ts +7 -0
- package/dist/pdf/color.d.ts.map +1 -0
- package/dist/pdf/color.js +25 -0
- package/dist/pdf/color.js.map +1 -0
- package/dist/pdf/content.d.ts +37 -0
- package/dist/pdf/content.d.ts.map +1 -0
- package/dist/pdf/content.js +129 -0
- package/dist/pdf/content.js.map +1 -0
- package/dist/pdf/decoration.d.ts +10 -0
- package/dist/pdf/decoration.d.ts.map +1 -0
- package/dist/pdf/decoration.js +60 -0
- package/dist/pdf/decoration.js.map +1 -0
- package/dist/pdf/document.d.ts +4 -0
- package/dist/pdf/document.d.ts.map +1 -0
- package/dist/pdf/document.js +158 -0
- package/dist/pdf/document.js.map +1 -0
- package/dist/pdf/errors.d.ts +13 -0
- package/dist/pdf/errors.d.ts.map +1 -0
- package/dist/pdf/errors.js +13 -0
- package/dist/pdf/errors.js.map +1 -0
- package/dist/pdf/fonts/advance.d.ts +35 -0
- package/dist/pdf/fonts/advance.d.ts.map +1 -0
- package/dist/pdf/fonts/advance.js +157 -0
- package/dist/pdf/fonts/advance.js.map +1 -0
- package/dist/pdf/fonts/embed.d.ts +32 -0
- package/dist/pdf/fonts/embed.d.ts.map +1 -0
- package/dist/pdf/fonts/embed.js +183 -0
- package/dist/pdf/fonts/embed.js.map +1 -0
- package/dist/pdf/fonts/registry.d.ts +47 -0
- package/dist/pdf/fonts/registry.d.ts.map +1 -0
- package/dist/pdf/fonts/registry.js +222 -0
- package/dist/pdf/fonts/registry.js.map +1 -0
- package/dist/pdf/fonts/sfnt.d.ts +83 -0
- package/dist/pdf/fonts/sfnt.d.ts.map +1 -0
- package/dist/pdf/fonts/sfnt.js +363 -0
- package/dist/pdf/fonts/sfnt.js.map +1 -0
- package/dist/pdf/fonts/subset.d.ts +8 -0
- package/dist/pdf/fonts/subset.d.ts.map +1 -0
- package/dist/pdf/fonts/subset.js +101 -0
- package/dist/pdf/fonts/subset.js.map +1 -0
- package/dist/pdf/fonts/table-builder.d.ts +8 -0
- package/dist/pdf/fonts/table-builder.d.ts.map +1 -0
- package/dist/pdf/fonts/table-builder.js +90 -0
- package/dist/pdf/fonts/table-builder.js.map +1 -0
- package/dist/pdf/geometry.d.ts +24 -0
- package/dist/pdf/geometry.d.ts.map +1 -0
- package/dist/pdf/geometry.js +26 -0
- package/dist/pdf/geometry.js.map +1 -0
- package/dist/pdf/images/embed.d.ts +10 -0
- package/dist/pdf/images/embed.d.ts.map +1 -0
- package/dist/pdf/images/embed.js +80 -0
- package/dist/pdf/images/embed.js.map +1 -0
- package/dist/pdf/images/jpeg.d.ts +18 -0
- package/dist/pdf/images/jpeg.d.ts.map +1 -0
- package/dist/pdf/images/jpeg.js +65 -0
- package/dist/pdf/images/jpeg.js.map +1 -0
- package/dist/pdf/images/png.d.ts +13 -0
- package/dist/pdf/images/png.d.ts.map +1 -0
- package/dist/pdf/images/png.js +213 -0
- package/dist/pdf/images/png.js.map +1 -0
- package/dist/pdf/images/registry.d.ts +22 -0
- package/dist/pdf/images/registry.d.ts.map +1 -0
- package/dist/pdf/images/registry.js +94 -0
- package/dist/pdf/images/registry.js.map +1 -0
- package/dist/pdf/index.d.ts +10 -0
- package/dist/pdf/index.d.ts.map +1 -0
- package/dist/pdf/index.js +11 -0
- package/dist/pdf/index.js.map +1 -0
- package/dist/pdf/metadata.d.ts +21 -0
- package/dist/pdf/metadata.d.ts.map +1 -0
- package/dist/pdf/metadata.js +65 -0
- package/dist/pdf/metadata.js.map +1 -0
- package/dist/pdf/objects.d.ts +46 -0
- package/dist/pdf/objects.d.ts.map +1 -0
- package/dist/pdf/objects.js +174 -0
- package/dist/pdf/objects.js.map +1 -0
- package/dist/pdf/options.d.ts +9 -0
- package/dist/pdf/options.d.ts.map +1 -0
- package/dist/pdf/options.js +84 -0
- package/dist/pdf/options.js.map +1 -0
- package/dist/pdf/page.d.ts +21 -0
- package/dist/pdf/page.d.ts.map +1 -0
- package/dist/pdf/page.js +228 -0
- package/dist/pdf/page.js.map +1 -0
- package/dist/pdf/pdfa.d.ts +6 -0
- package/dist/pdf/pdfa.d.ts.map +1 -0
- package/dist/pdf/pdfa.js +139 -0
- package/dist/pdf/pdfa.js.map +1 -0
- package/dist/pdf/runs.d.ts +25 -0
- package/dist/pdf/runs.d.ts.map +1 -0
- package/dist/pdf/runs.js +122 -0
- package/dist/pdf/runs.js.map +1 -0
- package/dist/pdf/selection.d.ts +4 -0
- package/dist/pdf/selection.d.ts.map +1 -0
- package/dist/pdf/selection.js +31 -0
- package/dist/pdf/selection.js.map +1 -0
- package/dist/pdf/stream.d.ts +13 -0
- package/dist/pdf/stream.d.ts.map +1 -0
- package/dist/pdf/stream.js +61 -0
- package/dist/pdf/stream.js.map +1 -0
- package/dist/pdf/types.d.ts +111 -0
- package/dist/pdf/types.d.ts.map +1 -0
- package/dist/pdf/types.js +2 -0
- package/dist/pdf/types.js.map +1 -0
- package/dist/pdf/xmp.d.ts +11 -0
- package/dist/pdf/xmp.d.ts.map +1 -0
- package/dist/pdf/xmp.js +53 -0
- package/dist/pdf/xmp.js.map +1 -0
- package/dist/render/color.d.ts +6 -0
- package/dist/render/color.d.ts.map +1 -0
- package/dist/render/color.js +49 -0
- package/dist/render/color.js.map +1 -0
- package/dist/render/decoration.d.ts +18 -0
- package/dist/render/decoration.d.ts.map +1 -0
- package/dist/render/decoration.js +120 -0
- package/dist/render/decoration.js.map +1 -0
- package/dist/render/divergence.d.ts +78 -0
- package/dist/render/divergence.d.ts.map +1 -0
- package/dist/render/divergence.js +680 -0
- package/dist/render/divergence.js.map +1 -0
- package/dist/render/document.d.ts +6 -0
- package/dist/render/document.d.ts.map +1 -0
- package/dist/render/document.js +204 -0
- package/dist/render/document.js.map +1 -0
- package/dist/render/dom.d.ts +56 -0
- package/dist/render/dom.d.ts.map +1 -0
- package/dist/render/dom.js +62 -0
- package/dist/render/dom.js.map +1 -0
- package/dist/render/images.d.ts +26 -0
- package/dist/render/images.d.ts.map +1 -0
- package/dist/render/images.js +79 -0
- package/dist/render/images.js.map +1 -0
- package/dist/render/index.d.ts +29 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +17 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/inline-object.d.ts +13 -0
- package/dist/render/inline-object.d.ts.map +1 -0
- package/dist/render/inline-object.js +19 -0
- package/dist/render/inline-object.js.map +1 -0
- package/dist/render/objects.d.ts +20 -0
- package/dist/render/objects.d.ts.map +1 -0
- package/dist/render/objects.js +85 -0
- package/dist/render/objects.js.map +1 -0
- package/dist/render/page-range.d.ts +11 -0
- package/dist/render/page-range.d.ts.map +1 -0
- package/dist/render/page-range.js +64 -0
- package/dist/render/page-range.js.map +1 -0
- package/dist/render/pages.d.ts +21 -0
- package/dist/render/pages.d.ts.map +1 -0
- package/dist/render/pages.js +200 -0
- package/dist/render/pages.js.map +1 -0
- package/dist/render/print-style.d.ts +27 -0
- package/dist/render/print-style.d.ts.map +1 -0
- package/dist/render/print-style.js +106 -0
- package/dist/render/print-style.js.map +1 -0
- package/dist/render/print.d.ts +57 -0
- package/dist/render/print.d.ts.map +1 -0
- package/dist/render/print.js +189 -0
- package/dist/render/print.js.map +1 -0
- package/dist/render/registry.d.ts +38 -0
- package/dist/render/registry.d.ts.map +1 -0
- package/dist/render/registry.js +120 -0
- package/dist/render/registry.js.map +1 -0
- package/dist/render/runs.d.ts +23 -0
- package/dist/render/runs.d.ts.map +1 -0
- package/dist/render/runs.js +99 -0
- package/dist/render/runs.js.map +1 -0
- package/dist/render/scale.d.ts +13 -0
- package/dist/render/scale.d.ts.map +1 -0
- package/dist/render/scale.js +20 -0
- package/dist/render/scale.js.map +1 -0
- package/dist/render/style.d.ts +21 -0
- package/dist/render/style.d.ts.map +1 -0
- package/dist/render/style.js +127 -0
- package/dist/render/style.js.map +1 -0
- package/dist/render/types.d.ts +124 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +5 -0
- package/dist/render/types.js.map +1 -0
- package/dist/sfnt/sfnt.d.ts +87 -0
- package/dist/sfnt/sfnt.d.ts.map +1 -0
- package/dist/sfnt/sfnt.js +367 -0
- package/dist/sfnt/sfnt.js.map +1 -0
- package/dist/style.css +128 -0
- package/dist/tokens/binding.d.ts +31 -0
- package/dist/tokens/binding.d.ts.map +1 -0
- package/dist/tokens/binding.js +151 -0
- package/dist/tokens/binding.js.map +1 -0
- package/dist/tokens/catalogue.d.ts +53 -0
- package/dist/tokens/catalogue.d.ts.map +1 -0
- package/dist/tokens/catalogue.js +209 -0
- package/dist/tokens/catalogue.js.map +1 -0
- package/dist/tokens/display.d.ts +30 -0
- package/dist/tokens/display.d.ts.map +1 -0
- package/dist/tokens/display.js +59 -0
- package/dist/tokens/display.js.map +1 -0
- package/dist/tokens/engine.d.ts +49 -0
- package/dist/tokens/engine.d.ts.map +1 -0
- package/dist/tokens/engine.js +166 -0
- package/dist/tokens/engine.js.map +1 -0
- package/dist/tokens/events.d.ts +83 -0
- package/dist/tokens/events.d.ts.map +1 -0
- package/dist/tokens/events.js +2 -0
- package/dist/tokens/events.js.map +1 -0
- package/dist/tokens/fill.d.ts +29 -0
- package/dist/tokens/fill.d.ts.map +1 -0
- package/dist/tokens/fill.js +129 -0
- package/dist/tokens/fill.js.map +1 -0
- package/dist/tokens/format.d.ts +16 -0
- package/dist/tokens/format.d.ts.map +1 -0
- package/dist/tokens/format.js +141 -0
- package/dist/tokens/format.js.map +1 -0
- package/dist/tokens/headless.d.ts +31 -0
- package/dist/tokens/headless.d.ts.map +1 -0
- package/dist/tokens/headless.js +143 -0
- package/dist/tokens/headless.js.map +1 -0
- package/dist/tokens/images.d.ts +28 -0
- package/dist/tokens/images.d.ts.map +1 -0
- package/dist/tokens/images.js +184 -0
- package/dist/tokens/images.js.map +1 -0
- package/dist/tokens/index.d.ts +34 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +17 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/insert.d.ts +22 -0
- package/dist/tokens/insert.d.ts.map +1 -0
- package/dist/tokens/insert.js +113 -0
- package/dist/tokens/insert.js.map +1 -0
- package/dist/tokens/issues.d.ts +37 -0
- package/dist/tokens/issues.d.ts.map +1 -0
- package/dist/tokens/issues.js +149 -0
- package/dist/tokens/issues.js.map +1 -0
- package/dist/tokens/keys.d.ts +49 -0
- package/dist/tokens/keys.d.ts.map +1 -0
- package/dist/tokens/keys.js +107 -0
- package/dist/tokens/keys.js.map +1 -0
- package/dist/tokens/module.d.ts +103 -0
- package/dist/tokens/module.d.ts.map +1 -0
- package/dist/tokens/module.js +861 -0
- package/dist/tokens/module.js.map +1 -0
- package/dist/tokens/types.d.ts +257 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.js +2 -0
- package/dist/tokens/types.js.map +1 -0
- package/dist/tokens/unlink.d.ts +11 -0
- package/dist/tokens/unlink.d.ts.map +1 -0
- package/dist/tokens/unlink.js +49 -0
- package/dist/tokens/unlink.js.map +1 -0
- package/dist/tokens/validation.d.ts +10 -0
- package/dist/tokens/validation.d.ts.map +1 -0
- package/dist/tokens/validation.js +156 -0
- package/dist/tokens/validation.js.map +1 -0
- package/dist/tokens/values.d.ts +24 -0
- package/dist/tokens/values.d.ts.map +1 -0
- package/dist/tokens/values.js +211 -0
- package/dist/tokens/values.js.map +1 -0
- package/dist/tokens/write.d.ts +14 -0
- package/dist/tokens/write.d.ts.map +1 -0
- package/dist/tokens/write.js +167 -0
- package/dist/tokens/write.js.map +1 -0
- package/dist/ui/chrome.d.ts +49 -0
- package/dist/ui/chrome.d.ts.map +1 -0
- package/dist/ui/chrome.js +795 -0
- package/dist/ui/chrome.js.map +1 -0
- package/dist/ui/colour-picker.d.ts +57 -0
- package/dist/ui/colour-picker.d.ts.map +1 -0
- package/dist/ui/colour-picker.js +491 -0
- package/dist/ui/colour-picker.js.map +1 -0
- package/dist/ui/comments-panel.d.ts +17 -0
- package/dist/ui/comments-panel.d.ts.map +1 -0
- package/dist/ui/comments-panel.js +122 -0
- package/dist/ui/comments-panel.js.map +1 -0
- package/dist/ui/context-menu.d.ts +21 -0
- package/dist/ui/context-menu.d.ts.map +1 -0
- package/dist/ui/context-menu.js +121 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/controls.d.ts +30 -0
- package/dist/ui/controls.d.ts.map +1 -0
- package/dist/ui/controls.js +363 -0
- package/dist/ui/controls.js.map +1 -0
- package/dist/ui/dialog.d.ts +132 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/dialog.js +712 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dom.d.ts +25 -0
- package/dist/ui/dom.d.ts.map +1 -0
- package/dist/ui/dom.js +90 -0
- package/dist/ui/dom.js.map +1 -0
- package/dist/ui/floating-toolbar.d.ts +26 -0
- package/dist/ui/floating-toolbar.d.ts.map +1 -0
- package/dist/ui/floating-toolbar.js +189 -0
- package/dist/ui/floating-toolbar.js.map +1 -0
- package/dist/ui/font-dialog.d.ts +56 -0
- package/dist/ui/font-dialog.d.ts.map +1 -0
- package/dist/ui/font-dialog.js +341 -0
- package/dist/ui/font-dialog.js.map +1 -0
- package/dist/ui/i18n.d.ts +18 -0
- package/dist/ui/i18n.d.ts.map +1 -0
- package/dist/ui/i18n.js +370 -0
- package/dist/ui/i18n.js.map +1 -0
- package/dist/ui/icons.d.ts +4 -0
- package/dist/ui/icons.d.ts.map +1 -0
- package/dist/ui/icons.js +150 -0
- package/dist/ui/icons.js.map +1 -0
- package/dist/ui/image-picker.d.ts +35 -0
- package/dist/ui/image-picker.d.ts.map +1 -0
- package/dist/ui/image-picker.js +133 -0
- package/dist/ui/image-picker.js.map +1 -0
- package/dist/ui/index.d.ts +37 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +20 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/insert-dialogs.d.ts +39 -0
- package/dist/ui/insert-dialogs.d.ts.map +1 -0
- package/dist/ui/insert-dialogs.js +281 -0
- package/dist/ui/insert-dialogs.js.map +1 -0
- package/dist/ui/keyboard.d.ts +22 -0
- package/dist/ui/keyboard.d.ts.map +1 -0
- package/dist/ui/keyboard.js +128 -0
- package/dist/ui/keyboard.js.map +1 -0
- package/dist/ui/menu-bar.d.ts +22 -0
- package/dist/ui/menu-bar.d.ts.map +1 -0
- package/dist/ui/menu-bar.js +326 -0
- package/dist/ui/menu-bar.js.map +1 -0
- package/dist/ui/menu-model.d.ts +46 -0
- package/dist/ui/menu-model.d.ts.map +1 -0
- package/dist/ui/menu-model.js +1063 -0
- package/dist/ui/menu-model.js.map +1 -0
- package/dist/ui/menu.d.ts +28 -0
- package/dist/ui/menu.d.ts.map +1 -0
- package/dist/ui/menu.js +235 -0
- package/dist/ui/menu.js.map +1 -0
- package/dist/ui/paragraph-dialog.d.ts +39 -0
- package/dist/ui/paragraph-dialog.d.ts.map +1 -0
- package/dist/ui/paragraph-dialog.js +258 -0
- package/dist/ui/paragraph-dialog.js.map +1 -0
- package/dist/ui/queries.d.ts +38 -0
- package/dist/ui/queries.d.ts.map +1 -0
- package/dist/ui/queries.js +138 -0
- package/dist/ui/queries.js.map +1 -0
- package/dist/ui/ruler-vertical.d.ts +21 -0
- package/dist/ui/ruler-vertical.d.ts.map +1 -0
- package/dist/ui/ruler-vertical.js +411 -0
- package/dist/ui/ruler-vertical.js.map +1 -0
- package/dist/ui/ruler.d.ts +42 -0
- package/dist/ui/ruler.d.ts.map +1 -0
- package/dist/ui/ruler.js +391 -0
- package/dist/ui/ruler.js.map +1 -0
- package/dist/ui/status-bar.d.ts +24 -0
- package/dist/ui/status-bar.d.ts.map +1 -0
- package/dist/ui/status-bar.js +206 -0
- package/dist/ui/status-bar.js.map +1 -0
- package/dist/ui/store.d.ts +15 -0
- package/dist/ui/store.d.ts.map +1 -0
- package/dist/ui/store.js +82 -0
- package/dist/ui/store.js.map +1 -0
- package/dist/ui/styles.d.ts +8 -0
- package/dist/ui/styles.d.ts.map +1 -0
- package/dist/ui/styles.js +150 -0
- package/dist/ui/styles.js.map +1 -0
- package/dist/ui/theme.d.ts +9 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +93 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/types.d.ts +81 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +23 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/units/brand.d.ts +27 -0
- package/dist/units/brand.d.ts.map +1 -0
- package/dist/units/brand.js +23 -0
- package/dist/units/brand.js.map +1 -0
- package/dist/units/constants.d.ts +19 -0
- package/dist/units/constants.d.ts.map +1 -0
- package/dist/units/constants.js +19 -0
- package/dist/units/constants.js.map +1 -0
- package/dist/units/convert.d.ts +34 -0
- package/dist/units/convert.d.ts.map +1 -0
- package/dist/units/convert.js +42 -0
- package/dist/units/convert.js.map +1 -0
- package/dist/units/css.d.ts +6 -0
- package/dist/units/css.d.ts.map +1 -0
- package/dist/units/css.js +8 -0
- package/dist/units/css.js.map +1 -0
- package/dist/units/index.d.ts +6 -0
- package/dist/units/index.d.ts.map +1 -0
- package/dist/units/index.js +5 -0
- package/dist/units/index.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { RESULT_GAPS } from '../render/divergence.js';
|
|
2
|
+
import { sha256, toHex } from '../ooxml/sha256.js';
|
|
3
|
+
import { PdfError } from './errors.js';
|
|
4
|
+
import { throwIfAborted } from './abort.js';
|
|
5
|
+
import { createCompressor } from './stream.js';
|
|
6
|
+
import { PdfArray, PdfDict, PdfName, PdfString, PdfWriter, pdfDict, pdfLiteral, pdfStream } from './objects.js';
|
|
7
|
+
import { ContentStream } from './content.js';
|
|
8
|
+
import { pdfPageRect } from './geometry.js';
|
|
9
|
+
import { blocksOfPage, drawableTokens, paintPage } from './page.js';
|
|
10
|
+
import { selectedPages } from './selection.js';
|
|
11
|
+
import { FontRegistry } from './fonts/registry.js';
|
|
12
|
+
import { ImageRegistry } from './images/registry.js';
|
|
13
|
+
import { missingImageLabel } from '../render/inline-object.js';
|
|
14
|
+
import { buildXmp } from './xmp.js';
|
|
15
|
+
import { iccStream, outputIntent } from './pdfa.js';
|
|
16
|
+
import { infoDict, resolveMetadata } from './metadata.js';
|
|
17
|
+
import { asciiBytes, concatBytes } from './bytes.js';
|
|
18
|
+
const DOCUMENT_ID_BYTES = 16;
|
|
19
|
+
const painterGaps = () => RESULT_GAPS.map((gap) => ({
|
|
20
|
+
code: 'painterGap',
|
|
21
|
+
message: `the DOM painter does not paint ${gap}; the PDF does`,
|
|
22
|
+
detail: gap,
|
|
23
|
+
}));
|
|
24
|
+
const collectGlyphs = (result, fonts, images) => {
|
|
25
|
+
for (const page of result.pages) {
|
|
26
|
+
for (const block of blocksOfPage(page)) {
|
|
27
|
+
for (const line of block.lines) {
|
|
28
|
+
for (const run of line.runs) {
|
|
29
|
+
const paint = result.paint[run.paint];
|
|
30
|
+
if (paint === undefined || paint.hidden)
|
|
31
|
+
continue;
|
|
32
|
+
const slot = fonts.slotFor(paint);
|
|
33
|
+
if (slot === undefined)
|
|
34
|
+
continue;
|
|
35
|
+
for (const atom of line.atoms) {
|
|
36
|
+
if (atom.source.start < run.source.start || atom.source.end > run.source.end)
|
|
37
|
+
continue;
|
|
38
|
+
const object = atom.object;
|
|
39
|
+
if (object !== undefined) {
|
|
40
|
+
if (images.nameFor(object.relationshipId) === undefined) {
|
|
41
|
+
slot.record(missingImageLabel(object.relationshipId));
|
|
42
|
+
}
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (atom.text === '')
|
|
46
|
+
continue;
|
|
47
|
+
slot.record(atom.text);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const documentIdOf = (result, contents) => {
|
|
55
|
+
const digest = sha256(concatBytes([asciiBytes(result.documentHash), ...contents]));
|
|
56
|
+
return toHex(digest.subarray(0, DOCUMENT_ID_BYTES));
|
|
57
|
+
};
|
|
58
|
+
export const buildPdf = async (result, options) => {
|
|
59
|
+
throwIfAborted(options.signal);
|
|
60
|
+
if (result.pages.length === 0) {
|
|
61
|
+
throw new PdfError('the layout result has no pages to export', { code: 'PDF_NO_PAGES' });
|
|
62
|
+
}
|
|
63
|
+
const compressor = createCompressor(options.deflate);
|
|
64
|
+
const writer = new PdfWriter();
|
|
65
|
+
const fonts = new FontRegistry(options);
|
|
66
|
+
const images = new ImageRegistry(options);
|
|
67
|
+
const losses = [...painterGaps()];
|
|
68
|
+
await fonts.load(result);
|
|
69
|
+
throwIfAborted(options.signal);
|
|
70
|
+
images.bind(writer, compressor);
|
|
71
|
+
losses.push(...(await images.load(drawableTokens(result))));
|
|
72
|
+
throwIfAborted(options.signal);
|
|
73
|
+
collectGlyphs(result, fonts, images);
|
|
74
|
+
losses.push(...(await fonts.embed(writer, compressor)));
|
|
75
|
+
throwIfAborted(options.signal);
|
|
76
|
+
const selection = selectedPages(result, options);
|
|
77
|
+
const contents = [];
|
|
78
|
+
const contentRefs = [];
|
|
79
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
80
|
+
throwIfAborted(options.signal);
|
|
81
|
+
const page = selection[index];
|
|
82
|
+
if (page === undefined)
|
|
83
|
+
continue;
|
|
84
|
+
const stream = new ContentStream();
|
|
85
|
+
paintPage(page, { result, content: stream, fonts, images, measurer: options.measurer, losses });
|
|
86
|
+
const data = await compressor.compress(stream.bytes());
|
|
87
|
+
contents.push(data);
|
|
88
|
+
contentRefs.push(writer.add(pdfStream(pdfDict({ Filter: new PdfName('FlateDecode') }), data)));
|
|
89
|
+
options.onProgress?.({ phase: 'pages', fraction: (index + 1) / selection.length });
|
|
90
|
+
}
|
|
91
|
+
const resources = new PdfDict();
|
|
92
|
+
const fontResources = new PdfDict();
|
|
93
|
+
for (const [name, ref] of fonts.resources())
|
|
94
|
+
fontResources.set(name, ref);
|
|
95
|
+
const xobjectResources = new PdfDict();
|
|
96
|
+
for (const [name, ref] of images.resources())
|
|
97
|
+
xobjectResources.set(name, ref);
|
|
98
|
+
resources
|
|
99
|
+
.set('ProcSet', new PdfArray([new PdfName('PDF'), new PdfName('Text'), new PdfName('ImageC')]))
|
|
100
|
+
.set('Font', fontResources);
|
|
101
|
+
if (xobjectResources.entries.size > 0)
|
|
102
|
+
resources.set('XObject', xobjectResources);
|
|
103
|
+
const resourcesRef = writer.add(resources);
|
|
104
|
+
const metadata = resolveMetadata(options.metadata, options.producer);
|
|
105
|
+
const documentId = documentIdOf(result, contents);
|
|
106
|
+
const xmpRef = writer.add(pdfStream(pdfDict({ Type: new PdfName('Metadata'), Subtype: new PdfName('XML') }), await compressor.compress(buildXmp({ metadata, producer: options.producer, profile: options.pdfa, documentId }))));
|
|
107
|
+
const pagesRef = writer.reserve();
|
|
108
|
+
const pageRefs = [];
|
|
109
|
+
for (let index = 0; index < selection.length; index += 1) {
|
|
110
|
+
const page = selection[index];
|
|
111
|
+
const content = contentRefs[index];
|
|
112
|
+
if (page === undefined || content === undefined)
|
|
113
|
+
continue;
|
|
114
|
+
const box = pdfPageRect(page);
|
|
115
|
+
const pageDict = new PdfDict();
|
|
116
|
+
pageDict
|
|
117
|
+
.set('Type', new PdfName('Page'))
|
|
118
|
+
.set('Parent', pagesRef)
|
|
119
|
+
.set('MediaBox', new PdfArray([box.x, box.y, box.width, box.height]))
|
|
120
|
+
.set('Resources', resourcesRef)
|
|
121
|
+
.set('Contents', content);
|
|
122
|
+
pageRefs.push(writer.add(pageDict));
|
|
123
|
+
}
|
|
124
|
+
writer.define(pagesRef, pdfDict({ Type: new PdfName('Pages'), Kids: new PdfArray(pageRefs), Count: pageRefs.length }));
|
|
125
|
+
const catalog = new PdfDict();
|
|
126
|
+
catalog
|
|
127
|
+
.set('Type', new PdfName('Catalog'))
|
|
128
|
+
.set('Pages', pagesRef)
|
|
129
|
+
.set('Metadata', xmpRef);
|
|
130
|
+
if (metadata.language !== '')
|
|
131
|
+
catalog.set('Lang', pdfLiteral(metadata.language));
|
|
132
|
+
if (options.pdfa !== 'none') {
|
|
133
|
+
catalog.set('OutputIntents', new PdfArray([writer.add(outputIntent(writer.add(iccStream())))]));
|
|
134
|
+
}
|
|
135
|
+
const catalogRef = writer.add(catalog);
|
|
136
|
+
const infoRef = writer.add(infoDict(metadata, options.producer));
|
|
137
|
+
const idBytes = asciiBytes(documentId);
|
|
138
|
+
const trailer = pdfDict({
|
|
139
|
+
Size: writer.count() + 1,
|
|
140
|
+
Root: catalogRef,
|
|
141
|
+
Info: infoRef,
|
|
142
|
+
ID: new PdfArray([new PdfString(idBytes, true), new PdfString(idBytes, true)]),
|
|
143
|
+
});
|
|
144
|
+
options.onProgress?.({ phase: 'write', fraction: 1 });
|
|
145
|
+
const bytes = writer.serialize(trailer);
|
|
146
|
+
return {
|
|
147
|
+
bytes,
|
|
148
|
+
documentId,
|
|
149
|
+
pages: pageRefs.length,
|
|
150
|
+
pdfa: options.pdfa,
|
|
151
|
+
deterministic: options.deterministic,
|
|
152
|
+
fonts: fonts.reports(),
|
|
153
|
+
images: images.reports(),
|
|
154
|
+
losses,
|
|
155
|
+
diagnostics: result.diagnostics,
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/pdf/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type PdfErrorCode = 'PDF_INVALID_OPTION' | 'PDF_INVALID_PAGE_RANGE' | 'PDF_NO_PAGES' | 'PDF_ARCHIVAL_1B_REFUSED' | 'PDF_FONT_MISSING' | 'PDF_FONT_RESTRICTED' | 'PDF_FONT_UNREADABLE' | 'PDF_IMAGE_MISSING' | 'PDF_ENCRYPTION_UNAVAILABLE' | 'PDF_ABORTED';
|
|
2
|
+
export interface PdfErrorOptions {
|
|
3
|
+
readonly code: PdfErrorCode;
|
|
4
|
+
readonly detail?: string;
|
|
5
|
+
readonly cause?: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare class PdfError extends Error {
|
|
8
|
+
readonly code: PdfErrorCode;
|
|
9
|
+
readonly detail: string | undefined;
|
|
10
|
+
readonly cause: unknown;
|
|
11
|
+
constructor(message: string, options: PdfErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/pdf/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,cAAc,GACd,yBAAyB,GACzB,kBAAkB,GAClB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,4BAA4B,GAC5B,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe;CAOtD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class PdfError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
detail;
|
|
4
|
+
cause;
|
|
5
|
+
constructor(message, options) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'PdfError';
|
|
8
|
+
this.code = options.code;
|
|
9
|
+
this.detail = options.detail;
|
|
10
|
+
this.cause = options.cause;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/pdf/errors.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAe;IACnB,MAAM,CAAqB;IAClB,KAAK,CAAU;IAEjC,YAAY,OAAe,EAAE,OAAwB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Mp } from '../../units/index.js';
|
|
2
|
+
import type { ClusterStyle, TextMeasurer } from '../../measure/index.js';
|
|
3
|
+
import type { Sfnt } from '../../sfnt/sfnt.js';
|
|
4
|
+
export interface FaceIdentity {
|
|
5
|
+
readonly measurerId: string;
|
|
6
|
+
readonly family: string;
|
|
7
|
+
readonly unitsPerEm: number;
|
|
8
|
+
readonly ascent: number;
|
|
9
|
+
readonly descent: number;
|
|
10
|
+
readonly lineGap: number;
|
|
11
|
+
readonly advanceScale: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const parseFaceId: (faceId: string) => FaceIdentity | undefined;
|
|
14
|
+
export declare const identityOfFont: (font: Sfnt, measurerId: string, family: string, advanceScale: number) => FaceIdentity;
|
|
15
|
+
export declare const identitiesAgree: (engine: FaceIdentity, embedded: FaceIdentity) => boolean;
|
|
16
|
+
export declare const offsetsOf: (units: readonly number[], size: Mp, unitsPerEm: number, characterScale: number, characterSpacing: Mp) => readonly Mp[];
|
|
17
|
+
export declare const clustersOf: (text: string) => readonly string[];
|
|
18
|
+
export declare const glyphsOf: (text: string, font: Sfnt) => readonly number[];
|
|
19
|
+
export interface ClusterUnits {
|
|
20
|
+
readonly units: readonly number[];
|
|
21
|
+
readonly source: 'measurer' | 'font';
|
|
22
|
+
}
|
|
23
|
+
export declare const unitsOf: (text: string, family: string, style: ClusterStyle, measurer: TextMeasurer | undefined, font: Sfnt) => ClusterUnits;
|
|
24
|
+
export declare const inkUnitsOf: (text: string, font: Sfnt) => readonly number[];
|
|
25
|
+
export interface AdvancePlan {
|
|
26
|
+
readonly glyphs: readonly number[];
|
|
27
|
+
readonly adjustments: readonly number[];
|
|
28
|
+
readonly unitsSource: 'measurer' | 'font';
|
|
29
|
+
readonly engineTotal: Mp;
|
|
30
|
+
readonly inkTotal: Mp;
|
|
31
|
+
readonly modelDeltaPerMille: number;
|
|
32
|
+
readonly mismatch: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare const planAdvance: (text: string, target: Mp, size: Mp, unitsPerEm: number, characterScale: number, characterSpacing: Mp, family: string, style: ClusterStyle, measurer: TextMeasurer | undefined, font: Sfnt) => AdvancePlan;
|
|
35
|
+
//# sourceMappingURL=advance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advance.d.ts","sourceRoot":"","sources":["../../../src/pdf/fonts/advance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAUD,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,YAAY,GAAG,SAe3D,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,MAAM,IAAI,EACV,YAAY,MAAM,EAClB,QAAQ,MAAM,EACd,cAAc,MAAM,KACnB,YAQD,CAAC;AAEH,eAAO,MAAM,eAAe,GAAI,QAAQ,YAAY,EAAE,UAAU,YAAY,KAAG,OAI1C,CAAC;AAEtC,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,EACR,YAAY,MAAM,EAClB,gBAAgB,MAAM,EACtB,kBAAkB,EAAE,KACnB,SAAS,EAAE,EAYb,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,MAAM,EAUxD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,MAAM,IAAI,KAAG,SAAS,MAAM,EAIlE,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;CACtC;AAED,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,OAAO,YAAY,EACnB,UAAU,YAAY,GAAG,SAAS,EAClC,MAAM,IAAI,KACT,YAmBF,CAAC;AAIF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,IAAI,KAAG,SAAS,MAAM,EAWpE,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACtB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAQD,eAAO,MAAM,WAAW,GACtB,MAAM,MAAM,EACZ,QAAQ,EAAE,EACV,MAAM,EAAE,EACR,YAAY,MAAM,EAClB,gBAAgB,MAAM,EACtB,kBAAkB,EAAE,EACpB,QAAQ,MAAM,EACd,OAAO,YAAY,EACnB,UAAU,YAAY,GAAG,SAAS,EAClC,MAAM,IAAI,KACT,WAyCF,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { mp, roundHalfEven } from '../../units/index.js';
|
|
2
|
+
import { clusterLength } from '../../measure/index.js';
|
|
3
|
+
const FACE_ID_TRAILING_FIELDS = 5;
|
|
4
|
+
const numeric = (value) => {
|
|
5
|
+
if (value === undefined || value === '')
|
|
6
|
+
return undefined;
|
|
7
|
+
const parsed = Number(value);
|
|
8
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
9
|
+
};
|
|
10
|
+
export const parseFaceId = (faceId) => {
|
|
11
|
+
const parts = faceId.split('/');
|
|
12
|
+
if (parts.length < FACE_ID_TRAILING_FIELDS + 1)
|
|
13
|
+
return undefined;
|
|
14
|
+
const cut = parts.length - FACE_ID_TRAILING_FIELDS;
|
|
15
|
+
const numbers = parts.slice(cut).map(numeric);
|
|
16
|
+
if (numbers.some((value) => value === undefined))
|
|
17
|
+
return undefined;
|
|
18
|
+
return {
|
|
19
|
+
measurerId: parts.slice(0, cut - 1).join('/'),
|
|
20
|
+
family: parts[cut - 1] ?? '',
|
|
21
|
+
unitsPerEm: numbers[0] ?? 0,
|
|
22
|
+
ascent: numbers[1] ?? 0,
|
|
23
|
+
descent: numbers[2] ?? 0,
|
|
24
|
+
lineGap: numbers[3] ?? 0,
|
|
25
|
+
advanceScale: numbers[4] ?? 0,
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const identityOfFont = (font, measurerId, family, advanceScale) => ({
|
|
29
|
+
measurerId,
|
|
30
|
+
family,
|
|
31
|
+
unitsPerEm: font.head.unitsPerEm,
|
|
32
|
+
ascent: font.hhea.ascender,
|
|
33
|
+
descent: Math.abs(font.hhea.descender),
|
|
34
|
+
lineGap: font.hhea.lineGap,
|
|
35
|
+
advanceScale,
|
|
36
|
+
});
|
|
37
|
+
export const identitiesAgree = (engine, embedded) => engine.unitsPerEm === embedded.unitsPerEm &&
|
|
38
|
+
engine.ascent === embedded.ascent &&
|
|
39
|
+
engine.descent === embedded.descent &&
|
|
40
|
+
engine.lineGap === embedded.lineGap;
|
|
41
|
+
export const offsetsOf = (units, size, unitsPerEm, characterScale, characterSpacing) => {
|
|
42
|
+
const denominator = unitsPerEm * 100;
|
|
43
|
+
if (denominator === 0)
|
|
44
|
+
return units.map(() => mp(0));
|
|
45
|
+
const offsets = [];
|
|
46
|
+
let total = 0;
|
|
47
|
+
for (let index = 0; index <= units.length; index += 1) {
|
|
48
|
+
offsets.push(mp(roundHalfEven((total * size * characterScale) / denominator) + index * characterSpacing));
|
|
49
|
+
total += units[index] ?? 0;
|
|
50
|
+
}
|
|
51
|
+
return offsets;
|
|
52
|
+
};
|
|
53
|
+
export const clustersOf = (text) => {
|
|
54
|
+
const clusters = [];
|
|
55
|
+
let index = 0;
|
|
56
|
+
while (index < text.length) {
|
|
57
|
+
const length = clusterLength(text, index);
|
|
58
|
+
if (length === 0)
|
|
59
|
+
break;
|
|
60
|
+
clusters.push(text.slice(index, index + length));
|
|
61
|
+
index += length;
|
|
62
|
+
}
|
|
63
|
+
return clusters;
|
|
64
|
+
};
|
|
65
|
+
export const glyphsOf = (text, font) => {
|
|
66
|
+
const glyphs = [];
|
|
67
|
+
for (const character of text)
|
|
68
|
+
glyphs.push(font.glyphFor(character.codePointAt(0) ?? 0));
|
|
69
|
+
return glyphs;
|
|
70
|
+
};
|
|
71
|
+
export const unitsOf = (text, family, style, measurer, font) => {
|
|
72
|
+
const clusters = clustersOf(text);
|
|
73
|
+
if (measurer !== undefined && measurer.has(family)) {
|
|
74
|
+
const measured = measurer.clusters(family, text, style);
|
|
75
|
+
if (measured.length === clusters.length) {
|
|
76
|
+
return { units: measured.map((measured) => measured.advance), source: 'measurer' };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const widths = font.advanceWidths();
|
|
80
|
+
return {
|
|
81
|
+
units: clusters.map((cluster) => {
|
|
82
|
+
let total = 0;
|
|
83
|
+
for (const character of cluster) {
|
|
84
|
+
total += widths[font.glyphFor(character.codePointAt(0) ?? 0)] ?? 0;
|
|
85
|
+
}
|
|
86
|
+
return total;
|
|
87
|
+
}),
|
|
88
|
+
source: 'font',
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
const PER_MILLE = 1000;
|
|
92
|
+
export const inkUnitsOf = (text, font) => {
|
|
93
|
+
const unitsPerEm = font.head.unitsPerEm;
|
|
94
|
+
if (unitsPerEm === 0)
|
|
95
|
+
return clustersOf(text).map(() => 0);
|
|
96
|
+
const widths = font.advanceWidths();
|
|
97
|
+
return clustersOf(text).map((cluster) => {
|
|
98
|
+
let total = 0;
|
|
99
|
+
for (const character of cluster) {
|
|
100
|
+
total += widths[font.glyphFor(character.codePointAt(0) ?? 0)] ?? 0;
|
|
101
|
+
}
|
|
102
|
+
return Math.round((total * PER_MILLE) / unitsPerEm);
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
const textSpaceAdjustment = (deltaPt, fontSize) => {
|
|
106
|
+
if (fontSize === 0)
|
|
107
|
+
return 0;
|
|
108
|
+
const value = (-deltaPt * 1000) / fontSize;
|
|
109
|
+
return Math.abs(value) < 1e-4 ? 0 : value;
|
|
110
|
+
};
|
|
111
|
+
export const planAdvance = (text, target, size, unitsPerEm, characterScale, characterSpacing, family, style, measurer, font) => {
|
|
112
|
+
const { units, source } = unitsOf(text, family, style, measurer, font);
|
|
113
|
+
const offsets = offsetsOf(units, size, unitsPerEm, characterScale, characterSpacing);
|
|
114
|
+
const clusters = clustersOf(text);
|
|
115
|
+
const glyphs = [];
|
|
116
|
+
const adjustments = [];
|
|
117
|
+
const boundaries = [];
|
|
118
|
+
for (const cluster of clusters) {
|
|
119
|
+
for (const glyph of glyphsOf(cluster, font))
|
|
120
|
+
glyphs.push(glyph);
|
|
121
|
+
boundaries.push(glyphs.length - 1);
|
|
122
|
+
}
|
|
123
|
+
const fontSize = size / 1000;
|
|
124
|
+
const ink = inkUnitsOf(text, font);
|
|
125
|
+
const perMille = (size * characterScale) / (PER_MILLE * 100);
|
|
126
|
+
for (let index = 0; index < clusters.length; index += 1) {
|
|
127
|
+
const at = boundaries[index];
|
|
128
|
+
if (at === undefined || at < 0)
|
|
129
|
+
continue;
|
|
130
|
+
const engineAdvance = (offsets[index + 1] ?? mp(0)) - (offsets[index] ?? mp(0));
|
|
131
|
+
const inkAdvance = (ink[index] ?? 0) * perMille;
|
|
132
|
+
adjustments[at] = (adjustments[at] ?? 0) + textSpaceAdjustment((engineAdvance - inkAdvance) / 1000, fontSize);
|
|
133
|
+
}
|
|
134
|
+
const engineTotal = offsets[offsets.length - 1] ?? mp(0);
|
|
135
|
+
const last = adjustments.length - 1;
|
|
136
|
+
if (last >= 0 && engineTotal !== target) {
|
|
137
|
+
adjustments[last] = (adjustments[last] ?? 0) + textSpaceAdjustment((target - engineTotal) / 1000, fontSize);
|
|
138
|
+
}
|
|
139
|
+
let inkPerMille = 0;
|
|
140
|
+
for (const value of ink)
|
|
141
|
+
inkPerMille += value;
|
|
142
|
+
let measurerPerMille = 0;
|
|
143
|
+
if (unitsPerEm !== 0) {
|
|
144
|
+
for (const value of units)
|
|
145
|
+
measurerPerMille += (value * PER_MILLE) / unitsPerEm;
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
glyphs,
|
|
149
|
+
adjustments,
|
|
150
|
+
unitsSource: source,
|
|
151
|
+
engineTotal,
|
|
152
|
+
inkTotal: mp(Math.round(inkPerMille * perMille)),
|
|
153
|
+
modelDeltaPerMille: Math.round(Math.abs(measurerPerMille - inkPerMille)),
|
|
154
|
+
mismatch: engineTotal !== target,
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=advance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advance.js","sourceRoot":"","sources":["../../../src/pdf/fonts/advance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PdfLoss, EmbeddedFontReport, PdfFontRequest } from '../types.js';
|
|
2
|
+
import type { Compressor } from '../stream.js';
|
|
3
|
+
import { PdfRef } from '../objects.js';
|
|
4
|
+
import type { PdfWriter } from '../objects.js';
|
|
5
|
+
import type { Sfnt } from '../../sfnt/sfnt.js';
|
|
6
|
+
export declare const FSTYPE_RESTRICTED = 2;
|
|
7
|
+
export declare const FSTYPE_NO_SUBSETTING = 512;
|
|
8
|
+
export interface FontLicence {
|
|
9
|
+
readonly restricted: boolean;
|
|
10
|
+
readonly noSubsetting: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const licenceOf: (font: Sfnt) => FontLicence;
|
|
13
|
+
export interface EmbedFontInput {
|
|
14
|
+
readonly writer: PdfWriter;
|
|
15
|
+
readonly compressor: Compressor;
|
|
16
|
+
readonly font: Sfnt;
|
|
17
|
+
readonly original: Uint8Array;
|
|
18
|
+
readonly request: PdfFontRequest;
|
|
19
|
+
readonly resolvedFamily: string;
|
|
20
|
+
readonly glyphs: ReadonlySet<number>;
|
|
21
|
+
readonly toUnicode: ReadonlyMap<number, string>;
|
|
22
|
+
readonly name: string;
|
|
23
|
+
}
|
|
24
|
+
export interface FontEmbedding {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly ref: PdfRef;
|
|
27
|
+
readonly report: EmbeddedFontReport;
|
|
28
|
+
readonly losses: readonly PdfLoss[];
|
|
29
|
+
}
|
|
30
|
+
export declare const subsetTagOf: (bytes: Uint8Array) => string;
|
|
31
|
+
export declare const embedFont: (input: EmbedFontInput) => Promise<FontEmbedding>;
|
|
32
|
+
//# sourceMappingURL=embed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../../src/pdf/fonts/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAA8B,MAAM,EAAkC,MAAM,eAAe,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAe/C,eAAO,MAAM,iBAAiB,IAAS,CAAC;AACxC,eAAO,MAAM,oBAAoB,MAAS,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,WAMtC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,KAAG,MAO/C,CAAC;AAyEF,eAAO,MAAM,SAAS,GAAU,OAAO,cAAc,KAAG,OAAO,CAAC,aAAa,CA8F5E,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { asciiBytes } from '../bytes.js';
|
|
2
|
+
import { PdfArray, PdfDict, PdfName, PdfRef, pdfDict, pdfLiteral, pdfStream } from '../objects.js';
|
|
3
|
+
import { subsetTrueType } from './subset.js';
|
|
4
|
+
import { sha256 } from '../../ooxml/sha256.js';
|
|
5
|
+
const PER_EM = 1000;
|
|
6
|
+
const DEFAULT_WIDTH = 1000;
|
|
7
|
+
const BFC_RANGE_SIZE = 100;
|
|
8
|
+
const SUBSET_TAG_LENGTH = 6;
|
|
9
|
+
const LETTERS = 26;
|
|
10
|
+
const DESCRIPTOR_FIXED_PITCH = 0x0001;
|
|
11
|
+
const DESCRIPTOR_NONSYMBOLIC = 0x0020;
|
|
12
|
+
const DESCRIPTOR_ITALIC = 0x0040;
|
|
13
|
+
const DESCRIPTOR_FORCE_BOLD = 0x40000;
|
|
14
|
+
export const FSTYPE_RESTRICTED = 0x0002;
|
|
15
|
+
export const FSTYPE_NO_SUBSETTING = 0x0200;
|
|
16
|
+
export const licenceOf = (font) => {
|
|
17
|
+
const fsType = font.os2?.fsType ?? 0;
|
|
18
|
+
return {
|
|
19
|
+
restricted: (fsType & FSTYPE_RESTRICTED) !== 0,
|
|
20
|
+
noSubsetting: (fsType & FSTYPE_NO_SUBSETTING) !== 0,
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export const subsetTagOf = (bytes) => {
|
|
24
|
+
const digest = sha256(bytes);
|
|
25
|
+
let tag = '';
|
|
26
|
+
for (let index = 0; index < SUBSET_TAG_LENGTH; index += 1) {
|
|
27
|
+
tag += String.fromCharCode(0x41 + ((digest[index] ?? 0) % LETTERS));
|
|
28
|
+
}
|
|
29
|
+
return tag;
|
|
30
|
+
};
|
|
31
|
+
const widthOf = (advance, unitsPerEm) => unitsPerEm === 0 ? 0 : Math.round((advance * PER_EM) / unitsPerEm);
|
|
32
|
+
const descriptorFlags = (font, request) => {
|
|
33
|
+
let flags = DESCRIPTOR_NONSYMBOLIC;
|
|
34
|
+
if (request.italic)
|
|
35
|
+
flags |= DESCRIPTOR_ITALIC;
|
|
36
|
+
if (request.bold)
|
|
37
|
+
flags |= DESCRIPTOR_FORCE_BOLD;
|
|
38
|
+
if (font.isMonospaced())
|
|
39
|
+
flags |= DESCRIPTOR_FIXED_PITCH;
|
|
40
|
+
return flags;
|
|
41
|
+
};
|
|
42
|
+
const cidSystemInfo = () => pdfDict({
|
|
43
|
+
Registry: pdfLiteral('Adobe'),
|
|
44
|
+
Ordering: pdfLiteral('Identity'),
|
|
45
|
+
Supplement: 0,
|
|
46
|
+
});
|
|
47
|
+
const codePointHex = (codePoint) => {
|
|
48
|
+
if (codePoint <= 0xffff)
|
|
49
|
+
return codePoint.toString(16).padStart(4, '0');
|
|
50
|
+
const adjusted = codePoint - 0x10000;
|
|
51
|
+
const high = 0xd800 + (adjusted >> 10);
|
|
52
|
+
const low = 0xdc00 + (adjusted & 0x3ff);
|
|
53
|
+
return `${high.toString(16).padStart(4, '0')}${low.toString(16).padStart(4, '0')}`;
|
|
54
|
+
};
|
|
55
|
+
const utf16Hex = (text) => {
|
|
56
|
+
let hex = '';
|
|
57
|
+
for (const character of text)
|
|
58
|
+
hex += codePointHex(character.codePointAt(0) ?? 0);
|
|
59
|
+
return hex;
|
|
60
|
+
};
|
|
61
|
+
const toUnicodeCMap = (entries) => {
|
|
62
|
+
const lines = [
|
|
63
|
+
'/CIDInit /ProcSet findresource begin',
|
|
64
|
+
'12 dict begin',
|
|
65
|
+
'begincmap',
|
|
66
|
+
'/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def',
|
|
67
|
+
'/CMapName /Adobe-Identity-UCS def',
|
|
68
|
+
'/CMapType 2 def',
|
|
69
|
+
'1 begincodespacerange',
|
|
70
|
+
'<0000> <ffff>',
|
|
71
|
+
'endcodespacerange',
|
|
72
|
+
];
|
|
73
|
+
for (let offset = 0; offset < entries.length; offset += BFC_RANGE_SIZE) {
|
|
74
|
+
const block = entries.slice(offset, offset + BFC_RANGE_SIZE);
|
|
75
|
+
lines.push(`${block.length} beginbfchar`);
|
|
76
|
+
for (const [glyph, text] of block) {
|
|
77
|
+
lines.push(`<${glyph.toString(16).padStart(4, '0')}> <${utf16Hex(text)}>`);
|
|
78
|
+
}
|
|
79
|
+
lines.push('endbfchar');
|
|
80
|
+
}
|
|
81
|
+
lines.push('endcmap', 'CMapName currentdict /CMap defineresource pop', 'end', 'end');
|
|
82
|
+
return asciiBytes(`${lines.join('\n')}\n`);
|
|
83
|
+
};
|
|
84
|
+
const widthsArray = (font, glyphs, unitsPerEm) => {
|
|
85
|
+
const advances = font.advanceWidths();
|
|
86
|
+
const items = [];
|
|
87
|
+
for (const glyph of glyphs) {
|
|
88
|
+
const width = widthOf(advances[glyph] ?? 0, unitsPerEm);
|
|
89
|
+
if (width === DEFAULT_WIDTH)
|
|
90
|
+
continue;
|
|
91
|
+
items.push(glyph, new PdfArray([width]));
|
|
92
|
+
}
|
|
93
|
+
return new PdfArray(items);
|
|
94
|
+
};
|
|
95
|
+
export const embedFont = async (input) => {
|
|
96
|
+
const { writer, compressor, font, original, request, resolvedFamily, glyphs, toUnicode } = input;
|
|
97
|
+
const losses = [];
|
|
98
|
+
const unitsPerEm = font.head.unitsPerEm;
|
|
99
|
+
const cff = font.isCff || !font.hasGlyf();
|
|
100
|
+
const licence = licenceOf(font);
|
|
101
|
+
let program = original;
|
|
102
|
+
let subset = false;
|
|
103
|
+
if (cff) {
|
|
104
|
+
losses.push({
|
|
105
|
+
code: 'cffEmbeddedInFull',
|
|
106
|
+
message: `${input.name} uses CFF outlines and is embedded in full`,
|
|
107
|
+
detail: 'ADR-0004 keeps CFF whole until a subsetter has passed the verification corpus',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (licence.noSubsetting) {
|
|
111
|
+
losses.push({
|
|
112
|
+
code: 'fontRestricted',
|
|
113
|
+
message: `${input.name} sets fsType 0x0200 (no subsetting); embedded in full`,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const result = subsetTrueType(font, glyphs);
|
|
118
|
+
program = result.bytes;
|
|
119
|
+
subset = result.subset;
|
|
120
|
+
}
|
|
121
|
+
const postScriptName = font.postScriptName(resolvedFamily.replace(/\s+/g, ''));
|
|
122
|
+
const baseFont = subset ? `${subsetTagOf(program)}+${postScriptName}` : postScriptName;
|
|
123
|
+
const programData = await compressor.compress(program);
|
|
124
|
+
const programStream = pdfStream(pdfDict({
|
|
125
|
+
Filter: new PdfName('FlateDecode'),
|
|
126
|
+
Length1: program.byteLength,
|
|
127
|
+
Subtype: new PdfName(cff ? 'OpenType' : 'TrueType'),
|
|
128
|
+
}), programData);
|
|
129
|
+
const perEm = (value) => widthOf(value, unitsPerEm);
|
|
130
|
+
const capHeight = font.os2?.capHeight !== undefined && font.os2.capHeight !== 0 ? font.os2.capHeight : font.hhea.ascender;
|
|
131
|
+
const descriptor = new PdfDict();
|
|
132
|
+
descriptor
|
|
133
|
+
.set('Type', new PdfName('FontDescriptor'))
|
|
134
|
+
.set('FontName', new PdfName(baseFont))
|
|
135
|
+
.set('Flags', descriptorFlags(font, request))
|
|
136
|
+
.set('FontBBox', new PdfArray([perEm(font.head.xMin), perEm(font.head.yMin), perEm(font.head.xMax), perEm(font.head.yMax)]))
|
|
137
|
+
.set('ItalicAngle', font.italicAngle)
|
|
138
|
+
.set('Ascent', perEm(font.hhea.ascender))
|
|
139
|
+
.set('Descent', Math.abs(perEm(font.hhea.descender)))
|
|
140
|
+
.set('CapHeight', perEm(capHeight))
|
|
141
|
+
.set('StemV', request.bold ? 140 : 80)
|
|
142
|
+
.set(cff ? 'FontFile3' : 'FontFile2', writer.add(programStream));
|
|
143
|
+
const used = [...new Set([...glyphs, 0])].sort((a, b) => a - b);
|
|
144
|
+
const cidFont = new PdfDict();
|
|
145
|
+
cidFont
|
|
146
|
+
.set('Type', new PdfName('Font'))
|
|
147
|
+
.set('Subtype', new PdfName(cff ? 'CIDFontType0' : 'CIDFontType2'))
|
|
148
|
+
.set('BaseFont', new PdfName(baseFont))
|
|
149
|
+
.set('CIDSystemInfo', cidSystemInfo())
|
|
150
|
+
.set('FontDescriptor', writer.add(descriptor))
|
|
151
|
+
.set('DW', DEFAULT_WIDTH)
|
|
152
|
+
.set('W', widthsArray(font, used, unitsPerEm));
|
|
153
|
+
if (!cff)
|
|
154
|
+
cidFont.set('CIDToGIDMap', new PdfName('Identity'));
|
|
155
|
+
const entries = [...toUnicode.entries()]
|
|
156
|
+
.filter(([glyph, text]) => glyph !== 0 && text !== '')
|
|
157
|
+
.sort((a, b) => a[0] - b[0]);
|
|
158
|
+
const cmapData = await compressor.compress(toUnicodeCMap(entries));
|
|
159
|
+
const cmapRef = writer.add(pdfStream(pdfDict({ Filter: new PdfName('FlateDecode') }), cmapData));
|
|
160
|
+
const type0 = new PdfDict();
|
|
161
|
+
type0
|
|
162
|
+
.set('Type', new PdfName('Font'))
|
|
163
|
+
.set('Subtype', new PdfName('Type0'))
|
|
164
|
+
.set('BaseFont', new PdfName(baseFont))
|
|
165
|
+
.set('Encoding', new PdfName('Identity-H'))
|
|
166
|
+
.set('DescendantFonts', new PdfArray([writer.add(cidFont)]))
|
|
167
|
+
.set('ToUnicode', cmapRef);
|
|
168
|
+
return {
|
|
169
|
+
name: input.name,
|
|
170
|
+
ref: writer.add(type0),
|
|
171
|
+
report: {
|
|
172
|
+
requestedFamily: request.family,
|
|
173
|
+
family: resolvedFamily,
|
|
174
|
+
bold: request.bold,
|
|
175
|
+
italic: request.italic,
|
|
176
|
+
subset,
|
|
177
|
+
glyphCount: used.length,
|
|
178
|
+
byteLength: program.byteLength,
|
|
179
|
+
},
|
|
180
|
+
losses,
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=embed.js.map
|