dompdf.js 1.1.1 → 1.2.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/.versionrc +8 -0
- package/CHANGELOG.md +32 -543
- package/README.md +172 -160
- package/README_CN.md +233 -238
- package/dist/dompdf.esm.js +124 -124
- package/dist/dompdf.esm.js.map +1 -1
- package/dist/dompdf.js +124 -124
- package/dist/dompdf.js.map +1 -1
- package/dist/dompdf.min.js +67 -0
- package/dist/index.d.ts +2 -1
- package/dist/lib/__tests__/index.js +144 -0
- package/dist/lib/__tests__/index.js.map +1 -0
- package/dist/lib/core/__mocks__/cache-storage.js +10 -0
- package/dist/lib/core/__mocks__/cache-storage.js.map +1 -0
- package/dist/lib/core/__mocks__/context.js +22 -0
- package/dist/lib/core/__mocks__/context.js.map +1 -0
- package/dist/lib/core/__mocks__/features.js +12 -0
- package/dist/lib/core/__mocks__/features.js.map +1 -0
- package/dist/lib/core/__mocks__/logger.js +24 -0
- package/dist/lib/core/__mocks__/logger.js.map +1 -0
- package/dist/lib/core/__tests__/cache-storage.js +420 -0
- package/dist/lib/core/__tests__/cache-storage.js.map +1 -0
- package/dist/lib/core/__tests__/logger.js +28 -0
- package/dist/lib/core/__tests__/logger.js.map +1 -0
- package/dist/lib/core/bitwise.js +6 -0
- package/dist/lib/core/bitwise.js.map +1 -0
- package/dist/lib/core/cache-storage.js +198 -0
- package/dist/lib/core/cache-storage.js.map +1 -0
- package/dist/lib/core/context.js +18 -0
- package/dist/lib/core/context.js.map +1 -0
- package/dist/lib/core/debugger.js +25 -0
- package/dist/lib/core/debugger.js.map +1 -0
- package/dist/lib/core/features.js +193 -0
- package/dist/lib/core/features.js.map +1 -0
- package/dist/lib/core/logger.js +92 -0
- package/dist/lib/core/logger.js.map +1 -0
- package/dist/lib/core/util.js +5 -0
- package/dist/lib/core/util.js.map +1 -0
- package/dist/lib/css/IPropertyDescriptor.js +3 -0
- package/dist/lib/css/IPropertyDescriptor.js.map +1 -0
- package/dist/lib/css/ITypeDescriptor.js +3 -0
- package/dist/lib/css/ITypeDescriptor.js.map +1 -0
- package/dist/lib/css/index.js +216 -0
- package/dist/lib/css/index.js.map +1 -0
- package/dist/lib/css/layout/__mocks__/bounds.js +9 -0
- package/dist/lib/css/layout/__mocks__/bounds.js.map +1 -0
- package/dist/lib/css/layout/bounds.js +42 -0
- package/dist/lib/css/layout/bounds.js.map +1 -0
- package/dist/lib/css/layout/text.js +137 -0
- package/dist/lib/css/layout/text.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js +48 -0
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/font-family.js +25 -0
- package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js +88 -0
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +94 -0
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +18 -0
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-clip.js +24 -0
- package/dist/lib/css/property-descriptors/background-clip.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-color.js +11 -0
- package/dist/lib/css/property-descriptors/background-color.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-image.js +24 -0
- package/dist/lib/css/property-descriptors/background-image.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-origin.js +24 -0
- package/dist/lib/css/property-descriptors/background-origin.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-position.js +17 -0
- package/dist/lib/css/property-descriptors/background-position.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-repeat.js +36 -0
- package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -0
- package/dist/lib/css/property-descriptors/background-size.js +24 -0
- package/dist/lib/css/property-descriptors/background-size.js.map +1 -0
- package/dist/lib/css/property-descriptors/border-color.js +15 -0
- package/dist/lib/css/property-descriptors/border-color.js.map +1 -0
- package/dist/lib/css/property-descriptors/border-radius.js +18 -0
- package/dist/lib/css/property-descriptors/border-radius.js.map +1 -0
- package/dist/lib/css/property-descriptors/border-style.js +30 -0
- package/dist/lib/css/property-descriptors/border-style.js.map +1 -0
- package/dist/lib/css/property-descriptors/border-width.js +21 -0
- package/dist/lib/css/property-descriptors/border-width.js.map +1 -0
- package/dist/lib/css/property-descriptors/box-shadow.js +55 -0
- package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -0
- package/dist/lib/css/property-descriptors/color.js +11 -0
- package/dist/lib/css/property-descriptors/color.js.map +1 -0
- package/dist/lib/css/property-descriptors/content.js +20 -0
- package/dist/lib/css/property-descriptors/content.js.map +1 -0
- package/dist/lib/css/property-descriptors/counter-increment.js +31 -0
- package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -0
- package/dist/lib/css/property-descriptors/counter-reset.js +27 -0
- package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -0
- package/dist/lib/css/property-descriptors/direction.js +19 -0
- package/dist/lib/css/property-descriptors/direction.js.map +1 -0
- package/dist/lib/css/property-descriptors/display.js +82 -0
- package/dist/lib/css/property-descriptors/display.js.map +1 -0
- package/dist/lib/css/property-descriptors/duration.js +15 -0
- package/dist/lib/css/property-descriptors/duration.js.map +1 -0
- package/dist/lib/css/property-descriptors/float.js +23 -0
- package/dist/lib/css/property-descriptors/float.js.map +1 -0
- package/dist/lib/css/property-descriptors/font-family.js +33 -0
- package/dist/lib/css/property-descriptors/font-family.js.map +1 -0
- package/dist/lib/css/property-descriptors/font-size.js +11 -0
- package/dist/lib/css/property-descriptors/font-size.js.map +1 -0
- package/dist/lib/css/property-descriptors/font-style.js +21 -0
- package/dist/lib/css/property-descriptors/font-style.js.map +1 -0
- package/dist/lib/css/property-descriptors/font-variant.js +14 -0
- package/dist/lib/css/property-descriptors/font-variant.js.map +1 -0
- package/dist/lib/css/property-descriptors/font-weight.js +26 -0
- package/dist/lib/css/property-descriptors/font-weight.js.map +1 -0
- package/dist/lib/css/property-descriptors/letter-spacing.js +22 -0
- package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -0
- package/dist/lib/css/property-descriptors/line-break.js +24 -0
- package/dist/lib/css/property-descriptors/line-break.js.map +1 -0
- package/dist/lib/css/property-descriptors/line-height.js +25 -0
- package/dist/lib/css/property-descriptors/line-height.js.map +1 -0
- package/dist/lib/css/property-descriptors/list-style-image.js +17 -0
- package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -0
- package/dist/lib/css/property-descriptors/list-style-position.js +19 -0
- package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -0
- package/dist/lib/css/property-descriptors/list-style-type.js +123 -0
- package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -0
- package/dist/lib/css/property-descriptors/margin.js +14 -0
- package/dist/lib/css/property-descriptors/margin.js.map +1 -0
- package/dist/lib/css/property-descriptors/opacity.js +17 -0
- package/dist/lib/css/property-descriptors/opacity.js.map +1 -0
- package/dist/lib/css/property-descriptors/overflow-wrap.js +19 -0
- package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -0
- package/dist/lib/css/property-descriptors/overflow.js +28 -0
- package/dist/lib/css/property-descriptors/overflow.js.map +1 -0
- package/dist/lib/css/property-descriptors/padding.js +15 -0
- package/dist/lib/css/property-descriptors/padding.js.map +1 -0
- package/dist/lib/css/property-descriptors/paint-order.js +34 -0
- package/dist/lib/css/property-descriptors/paint-order.js.map +1 -0
- package/dist/lib/css/property-descriptors/position.js +23 -0
- package/dist/lib/css/property-descriptors/position.js.map +1 -0
- package/dist/lib/css/property-descriptors/quotes.js +42 -0
- package/dist/lib/css/property-descriptors/quotes.js.map +1 -0
- package/dist/lib/css/property-descriptors/text-align.js +22 -0
- package/dist/lib/css/property-descriptors/text-align.js.map +1 -0
- package/dist/lib/css/property-descriptors/text-decoration-color.js +11 -0
- package/dist/lib/css/property-descriptors/text-decoration-color.js.map +1 -0
- package/dist/lib/css/property-descriptors/text-decoration-line.js +29 -0
- package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -0
- package/dist/lib/css/property-descriptors/text-shadow.js +47 -0
- package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -0
- package/dist/lib/css/property-descriptors/text-transform.js +21 -0
- package/dist/lib/css/property-descriptors/text-transform.js.map +1 -0
- package/dist/lib/css/property-descriptors/transform-origin.js +25 -0
- package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -0
- package/dist/lib/css/property-descriptors/transform.js +37 -0
- package/dist/lib/css/property-descriptors/transform.js.map +1 -0
- package/dist/lib/css/property-descriptors/visibility.js +21 -0
- package/dist/lib/css/property-descriptors/visibility.js.map +1 -0
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +11 -0
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +1 -0
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +17 -0
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -0
- package/dist/lib/css/property-descriptors/word-break.js +27 -0
- package/dist/lib/css/property-descriptors/word-break.js.map +1 -0
- package/dist/lib/css/property-descriptors/z-index.js +20 -0
- package/dist/lib/css/property-descriptors/z-index.js.map +1 -0
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +34 -0
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +1 -0
- package/dist/lib/css/syntax/parser.js +147 -0
- package/dist/lib/css/syntax/parser.js.map +1 -0
- package/dist/lib/css/syntax/tokenizer.js +630 -0
- package/dist/lib/css/syntax/tokenizer.js.map +1 -0
- package/dist/lib/css/types/__tests__/color-tests.js +66 -0
- package/dist/lib/css/types/__tests__/color-tests.js.map +1 -0
- package/dist/lib/css/types/__tests__/image-tests.js +233 -0
- package/dist/lib/css/types/__tests__/image-tests.js.map +1 -0
- package/dist/lib/css/types/angle.js +81 -0
- package/dist/lib/css/types/angle.js.map +1 -0
- package/dist/lib/css/types/color.js +311 -0
- package/dist/lib/css/types/color.js.map +1 -0
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js +33 -0
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -0
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js +84 -0
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -0
- package/dist/lib/css/types/functions/-webkit-gradient.js +60 -0
- package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -0
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js +68 -0
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +1 -0
- package/dist/lib/css/types/functions/counter.js +374 -0
- package/dist/lib/css/types/functions/counter.js.map +1 -0
- package/dist/lib/css/types/functions/gradient.js +165 -0
- package/dist/lib/css/types/functions/gradient.js.map +1 -0
- package/dist/lib/css/types/functions/linear-gradient.js +28 -0
- package/dist/lib/css/types/functions/linear-gradient.js.map +1 -0
- package/dist/lib/css/types/functions/radial-gradient.js +91 -0
- package/dist/lib/css/types/functions/radial-gradient.js.map +1 -0
- package/dist/lib/css/types/image.js +53 -0
- package/dist/lib/css/types/image.js.map +1 -0
- package/dist/lib/css/types/index.js +3 -0
- package/dist/lib/css/types/index.js.map +1 -0
- package/dist/lib/css/types/length-percentage.js +52 -0
- package/dist/lib/css/types/length-percentage.js.map +1 -0
- package/dist/lib/css/types/length.js +8 -0
- package/dist/lib/css/types/length.js.map +1 -0
- package/dist/lib/css/types/time.js +18 -0
- package/dist/lib/css/types/time.js.map +1 -0
- package/dist/lib/dom/__mocks__/document-cloner.js +24 -0
- package/dist/lib/dom/__mocks__/document-cloner.js.map +1 -0
- package/dist/lib/dom/document-cloner.js +530 -0
- package/dist/lib/dom/document-cloner.js.map +1 -0
- package/dist/lib/dom/element-container.js +39 -0
- package/dist/lib/dom/element-container.js.map +1 -0
- package/dist/lib/dom/elements/li-element-container.js +30 -0
- package/dist/lib/dom/elements/li-element-container.js.map +1 -0
- package/dist/lib/dom/elements/ol-element-container.js +31 -0
- package/dist/lib/dom/elements/ol-element-container.js.map +1 -0
- package/dist/lib/dom/elements/select-element-container.js +31 -0
- package/dist/lib/dom/elements/select-element-container.js.map +1 -0
- package/dist/lib/dom/elements/textarea-element-container.js +30 -0
- package/dist/lib/dom/elements/textarea-element-container.js.map +1 -0
- package/dist/lib/dom/node-parser.js +306 -0
- package/dist/lib/dom/node-parser.js.map +1 -0
- package/dist/lib/dom/replaced-elements/canvas-element-container.js +32 -0
- package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -0
- package/dist/lib/dom/replaced-elements/iframe-element-container.js +54 -0
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -0
- package/dist/lib/dom/replaced-elements/image-element-container.js +33 -0
- package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -0
- package/dist/lib/dom/replaced-elements/index.js +3 -0
- package/dist/lib/dom/replaced-elements/index.js.map +1 -0
- package/dist/lib/dom/replaced-elements/input-element-container.js +102 -0
- package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -0
- package/dist/lib/dom/replaced-elements/pseudo-elements.js +1 -0
- package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +1 -0
- package/dist/lib/dom/replaced-elements/svg-element-container.js +38 -0
- package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -0
- package/dist/lib/dom/text-container.js +32 -0
- package/dist/lib/dom/text-container.js.map +1 -0
- package/dist/lib/index.js +274 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/invariant.js +10 -0
- package/dist/lib/invariant.js.map +1 -0
- package/dist/lib/render/background.js +187 -0
- package/dist/lib/render/background.js.map +1 -0
- package/dist/lib/render/bezier-curve.js +36 -0
- package/dist/lib/render/bezier-curve.js.map +1 -0
- package/dist/lib/render/border.js +105 -0
- package/dist/lib/render/border.js.map +1 -0
- package/dist/lib/render/bound-curves.js +190 -0
- package/dist/lib/render/bound-curves.js.map +1 -0
- package/dist/lib/render/box-sizing.js +21 -0
- package/dist/lib/render/box-sizing.js.map +1 -0
- package/dist/lib/render/canvas/foreignobject-renderer.js +108 -0
- package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -0
- package/dist/lib/render/canvas/pdf-renderer.js +1340 -0
- package/dist/lib/render/canvas/pdf-renderer.js.map +1 -0
- package/dist/lib/render/effects.js +41 -0
- package/dist/lib/render/effects.js.map +1 -0
- package/dist/lib/render/font-metrics.js +55 -0
- package/dist/lib/render/font-metrics.js.map +1 -0
- package/dist/lib/render/page-format-map.js +54 -0
- package/dist/lib/render/page-format-map.js.map +1 -0
- package/dist/lib/render/paginate copy 2.js +178 -0
- package/dist/lib/render/paginate copy 2.js.map +1 -0
- package/dist/lib/render/paginate.js +211 -0
- package/dist/lib/render/paginate.js.map +1 -0
- package/dist/lib/render/path.js +27 -0
- package/dist/lib/render/path.js.map +1 -0
- package/dist/lib/render/renderer.js +12 -0
- package/dist/lib/render/renderer.js.map +1 -0
- package/dist/lib/render/stacking-context.js +172 -0
- package/dist/lib/render/stacking-context.js.map +1 -0
- package/dist/lib/render/vector.js +18 -0
- package/dist/lib/render/vector.js.map +1 -0
- package/dist/lib/utils/css-utils.js +19 -0
- package/dist/lib/utils/css-utils.js.map +1 -0
- package/dist/lib/utils/element-utils.js +25 -0
- package/dist/lib/utils/element-utils.js.map +1 -0
- package/dist/lib/utils/font-utils.js +70 -0
- package/dist/lib/utils/font-utils.js.map +1 -0
- package/dist/lib/utils/index.js +22 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/type-utils.js +40 -0
- package/dist/lib/utils/type-utils.js.map +1 -0
- package/dist/lib/utils/url-path.js +22 -0
- package/dist/lib/utils/url-path.js.map +1 -0
- package/dist/render/canvas/pdf-renderer.d.ts +2 -2
- package/dist/render/paginate copy 2.d.ts +3 -0
- package/dist/render/paginate.d.ts +1 -1
- package/dist/types/__tests__/index.d.ts +1 -0
- package/dist/types/core/__mocks__/cache-storage.d.ts +2 -0
- package/dist/types/core/__mocks__/context.d.ts +9 -0
- package/dist/types/core/__mocks__/features.d.ts +8 -0
- package/dist/types/core/__mocks__/logger.d.ts +9 -0
- package/dist/types/core/__tests__/cache-storage.d.ts +1 -0
- package/dist/types/core/__tests__/logger.d.ts +1 -0
- package/dist/types/core/bitwise.d.ts +1 -0
- package/dist/types/core/cache-storage.d.ts +26 -0
- package/dist/types/core/context.d.ts +15 -0
- package/dist/types/core/debugger.d.ts +8 -0
- package/dist/types/core/features.d.ts +12 -0
- package/dist/types/core/logger.d.ts +18 -0
- package/dist/types/core/util.d.ts +1 -0
- package/dist/types/css/IPropertyDescriptor.d.ts +36 -0
- package/dist/types/css/ITypeDescriptor.d.ts +6 -0
- package/dist/types/css/index.d.ts +132 -0
- package/dist/types/css/layout/__mocks__/bounds.d.ts +2 -0
- package/dist/types/css/layout/bounds.d.ts +14 -0
- package/dist/types/css/layout/text.d.ts +10 -0
- package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +1 -0
- package/dist/types/css/property-descriptors/background-clip.d.ts +8 -0
- package/dist/types/css/property-descriptors/background-color.d.ts +2 -0
- package/dist/types/css/property-descriptors/background-image.d.ts +3 -0
- package/dist/types/css/property-descriptors/background-origin.d.ts +8 -0
- package/dist/types/css/property-descriptors/background-position.d.ts +5 -0
- package/dist/types/css/property-descriptors/background-repeat.d.ts +9 -0
- package/dist/types/css/property-descriptors/background-size.d.ts +11 -0
- package/dist/types/css/property-descriptors/border-color.d.ts +5 -0
- package/dist/types/css/property-descriptors/border-radius.d.ts +7 -0
- package/dist/types/css/property-descriptors/border-style.d.ts +12 -0
- package/dist/types/css/property-descriptors/border-width.d.ts +5 -0
- package/dist/types/css/property-descriptors/box-shadow.d.ts +14 -0
- package/dist/types/css/property-descriptors/color.d.ts +2 -0
- package/dist/types/css/property-descriptors/content.d.ts +4 -0
- package/dist/types/css/property-descriptors/counter-increment.d.ts +7 -0
- package/dist/types/css/property-descriptors/counter-reset.d.ts +7 -0
- package/dist/types/css/property-descriptors/direction.d.ts +6 -0
- package/dist/types/css/property-descriptors/display.d.ts +35 -0
- package/dist/types/css/property-descriptors/duration.d.ts +2 -0
- package/dist/types/css/property-descriptors/float.d.ts +9 -0
- package/dist/types/css/property-descriptors/font-family.d.ts +4 -0
- package/dist/types/css/property-descriptors/font-size.d.ts +2 -0
- package/dist/types/css/property-descriptors/font-style.d.ts +7 -0
- package/dist/types/css/property-descriptors/font-variant.d.ts +2 -0
- package/dist/types/css/property-descriptors/font-weight.d.ts +2 -0
- package/dist/types/css/property-descriptors/letter-spacing.d.ts +2 -0
- package/dist/types/css/property-descriptors/line-break.d.ts +6 -0
- package/dist/types/css/property-descriptors/line-height.d.ts +4 -0
- package/dist/types/css/property-descriptors/list-style-image.d.ts +3 -0
- package/dist/types/css/property-descriptors/list-style-position.d.ts +6 -0
- package/dist/types/css/property-descriptors/list-style-type.d.ts +58 -0
- package/dist/types/css/property-descriptors/margin.d.ts +5 -0
- package/dist/types/css/property-descriptors/opacity.d.ts +2 -0
- package/dist/types/css/property-descriptors/overflow-wrap.d.ts +6 -0
- package/dist/types/css/property-descriptors/overflow.d.ts +9 -0
- package/dist/types/css/property-descriptors/padding.d.ts +5 -0
- package/dist/types/css/property-descriptors/paint-order.d.ts +8 -0
- package/dist/types/css/property-descriptors/position.d.ts +9 -0
- package/dist/types/css/property-descriptors/quotes.d.ts +8 -0
- package/dist/types/css/property-descriptors/text-align.d.ts +7 -0
- package/dist/types/css/property-descriptors/text-decoration-color.d.ts +2 -0
- package/dist/types/css/property-descriptors/text-decoration-line.d.ts +10 -0
- package/dist/types/css/property-descriptors/text-shadow.d.ts +12 -0
- package/dist/types/css/property-descriptors/text-transform.d.ts +8 -0
- package/dist/types/css/property-descriptors/transform-origin.d.ts +4 -0
- package/dist/types/css/property-descriptors/transform.d.ts +4 -0
- package/dist/types/css/property-descriptors/visibility.d.ts +7 -0
- package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +2 -0
- package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +2 -0
- package/dist/types/css/property-descriptors/word-break.d.ts +7 -0
- package/dist/types/css/property-descriptors/z-index.d.ts +7 -0
- package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +1 -0
- package/dist/types/css/syntax/parser.d.ts +34 -0
- package/dist/types/css/syntax/tokenizer.d.ts +94 -0
- package/dist/types/css/types/__tests__/color-tests.d.ts +1 -0
- package/dist/types/css/types/__tests__/image-tests.d.ts +1 -0
- package/dist/types/css/types/angle.d.ts +7 -0
- package/dist/types/css/types/color.d.ts +11 -0
- package/dist/types/css/types/functions/-prefix-linear-gradient.d.ts +4 -0
- package/dist/types/css/types/functions/-prefix-radial-gradient.d.ts +4 -0
- package/dist/types/css/types/functions/-webkit-gradient.d.ts +4 -0
- package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +1 -0
- package/dist/types/css/types/functions/counter.d.ts +10 -0
- package/dist/types/css/types/functions/gradient.d.ts +7 -0
- package/dist/types/css/types/functions/linear-gradient.d.ts +4 -0
- package/dist/types/css/types/functions/radial-gradient.d.ts +12 -0
- package/dist/types/css/types/image.d.ts +54 -0
- package/dist/types/css/types/index.d.ts +1 -0
- package/dist/types/css/types/length-percentage.d.ts +11 -0
- package/dist/types/css/types/length.d.ts +4 -0
- package/dist/types/css/types/time.d.ts +2 -0
- package/dist/types/dom/__mocks__/document-cloner.d.ts +6 -0
- package/dist/types/dom/document-cloner.d.ts +45 -0
- package/dist/types/dom/element-container.d.ts +23 -0
- package/dist/types/dom/elements/li-element-container.d.ts +6 -0
- package/dist/types/dom/elements/ol-element-container.d.ts +7 -0
- package/dist/types/dom/elements/select-element-container.d.ts +6 -0
- package/dist/types/dom/elements/textarea-element-container.d.ts +6 -0
- package/dist/types/dom/node-parser.d.ts +23 -0
- package/dist/types/dom/replaced-elements/canvas-element-container.d.ts +8 -0
- package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +11 -0
- package/dist/types/dom/replaced-elements/image-element-container.d.ts +8 -0
- package/dist/types/dom/replaced-elements/index.d.ts +4 -0
- package/dist/types/dom/replaced-elements/input-element-container.d.ts +12 -0
- package/dist/types/dom/replaced-elements/pseudo-elements.d.ts +0 -0
- package/dist/types/dom/replaced-elements/svg-element-container.d.ts +8 -0
- package/dist/types/dom/text-container.d.ts +8 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/invariant.d.ts +1 -0
- package/dist/types/render/background.d.ts +16 -0
- package/dist/types/render/bezier-curve.d.ts +14 -0
- package/dist/types/render/border.d.ts +6 -0
- package/dist/types/render/bound-curves.d.ts +32 -0
- package/dist/types/render/box-sizing.d.ts +4 -0
- package/dist/types/render/canvas/foreignobject-renderer.d.ts +11 -0
- package/dist/types/render/canvas/pdf-renderer.d.ts +110 -0
- package/dist/types/render/effects.d.ts +38 -0
- package/dist/types/render/font-metrics.d.ts +11 -0
- package/dist/types/render/page-format-map.d.ts +4 -0
- package/dist/types/render/paginate copy 2.d.ts +3 -0
- package/dist/types/render/paginate.d.ts +3 -0
- package/dist/types/render/path.d.ts +13 -0
- package/dist/types/render/renderer.d.ts +7 -0
- package/dist/types/render/stacking-context.d.ts +24 -0
- package/dist/types/render/vector.d.ts +9 -0
- package/dist/types/utils/css-utils.d.ts +2 -0
- package/dist/types/utils/element-utils.d.ts +7 -0
- package/dist/types/utils/font-utils.d.ts +9 -0
- package/dist/types/utils/index.d.ts +5 -0
- package/dist/types/utils/type-utils.d.ts +4 -0
- package/dist/types/utils/url-path.d.ts +7 -0
- package/dist/utils/font-utils.d.ts +2 -0
- package/fontconverter/fontconverter.html +2 -2
- package/package.json +135 -135
- package/page_sizes.md +50 -0
- package/.vscode/settings.json +0 -5
- package/html2pdf-userscript.js +0 -936
package/dist/dompdf.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* dompdf.js 1.
|
|
2
|
+
* dompdf.js 1.2.0 <https://dompdfjs.lisky.com.cn>
|
|
3
3
|
* Copyright (c) 2026 lfc <https://dompdfjs.lisky.com.cn/>
|
|
4
4
|
* Released under MIT License
|
|
5
5
|
*/
|
|
@@ -6048,9 +6048,7 @@ var capitalize$1 = function (m, p1, p2) {
|
|
|
6048
6048
|
};
|
|
6049
6049
|
|
|
6050
6050
|
var LIST_OWNERS$1 = ['OL', 'UL', 'MENU'];
|
|
6051
|
-
// let foreignObjectRendererList: any = []
|
|
6052
6051
|
var parseNodeTree$1 = function (context, node, parent, root, foreignObjectRendererList) {
|
|
6053
|
-
// console.log('parseNodeTree', context,node,parent,root)
|
|
6054
6052
|
for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {
|
|
6055
6053
|
nextNode = childNode.nextSibling;
|
|
6056
6054
|
if (isTextNode$1(childNode) && childNode.data.trim().length > 0) {
|
|
@@ -6089,9 +6087,6 @@ var parseNodeTree$1 = function (context, node, parent, root, foreignObjectRender
|
|
|
6089
6087
|
if (isElementNode$1(node) && node.hasAttribute('foreignobjectrendering')) {
|
|
6090
6088
|
foreignObjectRendererList.push(node);
|
|
6091
6089
|
}
|
|
6092
|
-
// if (parent.foreignobjectrendering){
|
|
6093
|
-
// container.foreignobjectrendering = true;
|
|
6094
|
-
// }
|
|
6095
6090
|
parent.elements.push(container);
|
|
6096
6091
|
childNode.slot;
|
|
6097
6092
|
if (childNode.shadowRoot) {
|
|
@@ -6137,13 +6132,6 @@ var createContainer$1 = function (context, element) {
|
|
|
6137
6132
|
}
|
|
6138
6133
|
return new ElementContainer$1(context, element);
|
|
6139
6134
|
};
|
|
6140
|
-
// export const parseTree = (context: Context, element: HTMLElement): ElementContainer => {
|
|
6141
|
-
// const container = createContainer(context, element);
|
|
6142
|
-
// container.flags |= FLAGS.CREATES_REAL_STACKING_CONTEXT;
|
|
6143
|
-
// console.log(element,'nodedom解析')
|
|
6144
|
-
// parseNodeTree(context, element, container, container);
|
|
6145
|
-
// return container;
|
|
6146
|
-
// };
|
|
6147
6135
|
var createsRealStackingContext$1 = function (node, container, root) {
|
|
6148
6136
|
return (container.styles.isPositionedWithZIndex() ||
|
|
6149
6137
|
container.styles.opacity < 1 ||
|
|
@@ -6177,9 +6165,6 @@ var parseTree$1 = function (context, element) { return __awaiter$1(void 0, void
|
|
|
6177
6165
|
var itemNode = uniqueList[index];
|
|
6178
6166
|
var width = itemNode.offsetWidth || itemNode.getBoundingClientRect().width || 100;
|
|
6179
6167
|
var height = itemNode.offsetHeight || itemNode.getBoundingClientRect().height || 100;
|
|
6180
|
-
// const rect = itemNode.getBoundingClientRect();
|
|
6181
|
-
// const scrollX = window.scrollX || document.documentElement.scrollLeft;
|
|
6182
|
-
// const scrollY = window.scrollY || document.documentElement.scrollTop;
|
|
6183
6168
|
// 创建图片容器
|
|
6184
6169
|
var bgContainer = document.createElement('div');
|
|
6185
6170
|
bgContainer.style.width = Math.ceil(width) + 'px';
|
|
@@ -6269,53 +6254,6 @@ var renderForeignObject = function (element) { return __awaiter$1(void 0, void 0
|
|
|
6269
6254
|
}
|
|
6270
6255
|
});
|
|
6271
6256
|
}); };
|
|
6272
|
-
// 修复3:安全截图(不修改原始 DOM)
|
|
6273
|
-
// const renderForeignObject = async (element: HTMLElement) => {
|
|
6274
|
-
// // 1. 克隆元素(包括所有子元素)
|
|
6275
|
-
// const clone = element.cloneNode(true) as HTMLElement;
|
|
6276
|
-
// // 2. 创建临时容器(确保正确计算样式)
|
|
6277
|
-
// const container = document.createElement('div');
|
|
6278
|
-
// container.style.position = 'absolute';
|
|
6279
|
-
// container.style.left = '-9999px';
|
|
6280
|
-
// container.appendChild(clone);
|
|
6281
|
-
// document.body.appendChild(container);
|
|
6282
|
-
// // 3. 应用透明样式到克隆体
|
|
6283
|
-
// const applyInvisibleStyle = (el: Element) => {
|
|
6284
|
-
// if (el instanceof HTMLElement) {
|
|
6285
|
-
// el.style.color = 'transparent';
|
|
6286
|
-
// el.style.backgroundColor = 'transparent';
|
|
6287
|
-
// Array.from(el.children).forEach(applyInvisibleStyle);
|
|
6288
|
-
// }
|
|
6289
|
-
// };
|
|
6290
|
-
// applyInvisibleStyle(clone);
|
|
6291
|
-
// // 4. 获取尺寸
|
|
6292
|
-
// const rect = clone.getBoundingClientRect();
|
|
6293
|
-
// if (rect.width === 0 || rect.height === 0) {
|
|
6294
|
-
// document.body.removeChild(container);
|
|
6295
|
-
// return null;
|
|
6296
|
-
// }
|
|
6297
|
-
// try {
|
|
6298
|
-
// // 5. 截图克隆体
|
|
6299
|
-
// const capture = await snapdom(clone, {
|
|
6300
|
-
// // width: Math.ceil(rect.width),
|
|
6301
|
-
// // height: Math.ceil(rect.height)
|
|
6302
|
-
// });
|
|
6303
|
-
// const pngData = await capture.toPng({
|
|
6304
|
-
// quality: 0.9,
|
|
6305
|
-
// // width: Math.ceil(rect.width),
|
|
6306
|
-
// // height: Math.ceil(rect.height)
|
|
6307
|
-
// });
|
|
6308
|
-
// return pngData;
|
|
6309
|
-
// } catch (error) {
|
|
6310
|
-
// console.error('截图失败:', error);
|
|
6311
|
-
// return null;
|
|
6312
|
-
// } finally {
|
|
6313
|
-
// // 6. 确保清理临时元素
|
|
6314
|
-
// document.body.removeChild(container);
|
|
6315
|
-
// }
|
|
6316
|
-
// };
|
|
6317
|
-
// 修复4:移除原有的 makeInvisible 函数
|
|
6318
|
-
// 不再需要,因为新方法使用克隆体
|
|
6319
6257
|
var createsStackingContext$1 = function (styles) { return styles.isPositioned() || styles.isFloating(); };
|
|
6320
6258
|
var isTextNode$1 = function (node) { return node.nodeType === Node.TEXT_NODE; };
|
|
6321
6259
|
var isElementNode$1 = function (node) { return node.nodeType === Node.ELEMENT_NODE; };
|
|
@@ -22784,13 +22722,29 @@ function validateFontConfig(fontConfig) {
|
|
|
22784
22722
|
return false;
|
|
22785
22723
|
}
|
|
22786
22724
|
}
|
|
22787
|
-
//
|
|
22725
|
+
// check:fontWeight is only 400 or 700
|
|
22788
22726
|
if (![400, 700].includes(config.fontWeight)) {
|
|
22789
22727
|
console.error("The fontWeight value is invalid. It can only be 400 or 700. Actual value:".concat(config.fontWeight));
|
|
22790
22728
|
return false;
|
|
22791
22729
|
}
|
|
22730
|
+
if (config.iconFont !== undefined && typeof config.iconFont !== 'boolean') {
|
|
22731
|
+
console.error("The field iconFont has a type error. Expected boolean, but received ".concat(typeof config.iconFont));
|
|
22732
|
+
return false;
|
|
22733
|
+
}
|
|
22792
22734
|
}
|
|
22793
22735
|
return true;
|
|
22736
|
+
}
|
|
22737
|
+
// The core function for handling configuration and populating default values
|
|
22738
|
+
function setOptionFontConfig(rawConfig) {
|
|
22739
|
+
if (!validateFontConfig(rawConfig)) {
|
|
22740
|
+
return undefined;
|
|
22741
|
+
}
|
|
22742
|
+
var configList = isArray$1(rawConfig) ? rawConfig : [rawConfig];
|
|
22743
|
+
var processedList = configList.map(function (config) {
|
|
22744
|
+
var _a;
|
|
22745
|
+
return (__assign$1(__assign$1({}, config), { iconFont: (_a = config.iconFont) !== null && _a !== void 0 ? _a : false }));
|
|
22746
|
+
});
|
|
22747
|
+
return processedList;
|
|
22794
22748
|
}
|
|
22795
22749
|
|
|
22796
22750
|
/**
|
|
@@ -23059,13 +23013,7 @@ var CanvasRenderer$1 = /** @class */ (function (_super) {
|
|
|
23059
23013
|
// reset all font
|
|
23060
23014
|
CanvasRenderer.prototype.resetJsPDFFont = function () {
|
|
23061
23015
|
var _this = this;
|
|
23062
|
-
|
|
23063
|
-
if (isObject$4(this.options.fontConfig) &&
|
|
23064
|
-
this.options.fontConfig &&
|
|
23065
|
-
this.options.fontConfig.fontFamily) {
|
|
23066
|
-
this.jspdfCtx.setFont(this.options.fontConfig.fontFamily);
|
|
23067
|
-
}
|
|
23068
|
-
else if (isArray$1(this.options.fontConfig) && !isEmptyValue(this.options.fontConfig)) {
|
|
23016
|
+
if (isArray$1(this.options.fontConfig) && !isEmptyValue(this.options.fontConfig)) {
|
|
23069
23017
|
this.options.fontConfig.forEach(function (v) {
|
|
23070
23018
|
v.fontFamily && _this.jspdfCtx.setFont(v.fontFamily);
|
|
23071
23019
|
});
|
|
@@ -23074,16 +23022,25 @@ var CanvasRenderer$1 = /** @class */ (function (_super) {
|
|
|
23074
23022
|
// setFont form options
|
|
23075
23023
|
CanvasRenderer.prototype.setTextFont = function (styles) {
|
|
23076
23024
|
var _a, _b, _c;
|
|
23077
|
-
// console.log(styles.fontWeight, styles.fontStyle, 'styles');
|
|
23025
|
+
// console.log(styles.fontWeight, styles.fontStyle, styles.fontFamily, 'styles');
|
|
23078
23026
|
if (isEmptyValue(this.options.fontConfig)) {
|
|
23079
23027
|
return '';
|
|
23080
23028
|
}
|
|
23081
|
-
|
|
23082
|
-
|
|
23029
|
+
var fontConfigRef = this.options.fontConfig;
|
|
23030
|
+
// 处理字体图标场景
|
|
23031
|
+
var isIconFont = fontConfigRef.find(function (v) { return v.iconFont; });
|
|
23032
|
+
var otherFonts = fontConfigRef.filter(function (v) { return !v.iconFont; });
|
|
23033
|
+
if (isIconFont && styles.fontFamily.some(function (family) { return family.includes(isIconFont.fontFamily); })) {
|
|
23034
|
+
isIconFont.fontFamily && this.jspdfCtx.setFont(isIconFont.fontFamily);
|
|
23035
|
+
return isIconFont.fontFamily;
|
|
23036
|
+
}
|
|
23037
|
+
// 除开字体图标场景
|
|
23038
|
+
if (otherFonts.length === 1) {
|
|
23039
|
+
var fontFamilyCustom_1 = (_a = otherFonts[0].fontFamily) !== null && _a !== void 0 ? _a : '';
|
|
23083
23040
|
fontFamilyCustom_1 && this.jspdfCtx.setFont(fontFamilyCustom_1);
|
|
23084
23041
|
return fontFamilyCustom_1;
|
|
23085
23042
|
}
|
|
23086
|
-
var fontFamilyCustom = (_c = (_b =
|
|
23043
|
+
var fontFamilyCustom = (_c = (_b = otherFonts.find(function (v) { return v.fontWeight === (styles.fontWeight > 500 ? 700 : 400) && v.fontStyle === styles.fontStyle; })) === null || _b === void 0 ? void 0 : _b.fontFamily) !== null && _c !== void 0 ? _c : '';
|
|
23087
23044
|
fontFamilyCustom && this.jspdfCtx.setFont(fontFamilyCustom);
|
|
23088
23045
|
return fontFamilyCustom;
|
|
23089
23046
|
};
|
|
@@ -23201,7 +23158,7 @@ var CanvasRenderer$1 = /** @class */ (function (_super) {
|
|
|
23201
23158
|
_a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2];
|
|
23202
23159
|
fontFamilyFinal = this.setTextFont(styles);
|
|
23203
23160
|
this.context2dCtx.font = fontFamilyFinal || font;
|
|
23204
|
-
// console.log(fontFamilyFinal, 'render getFont', this.jspdfCtx.getFont());
|
|
23161
|
+
// console.log(fontFamilyFinal, styles, 'render getFont', this.jspdfCtx.getFont());
|
|
23205
23162
|
// jspdf context2d not supported ‘direction’
|
|
23206
23163
|
// this.context2dCtx.direction = styles.direction === DIRECTION.RTL ? 'rtl' : 'ltr';
|
|
23207
23164
|
this.context2dCtx.textAlign = 'left';
|
|
@@ -24040,22 +23997,32 @@ var CanvasRenderer$1 = /** @class */ (function (_super) {
|
|
|
24040
23997
|
_a.sent();
|
|
24041
23998
|
this.applyEffects([]);
|
|
24042
23999
|
if (cfg === null || cfg === void 0 ? void 0 : cfg.header) {
|
|
24043
|
-
|
|
24044
|
-
.
|
|
24045
|
-
|
|
24046
|
-
|
|
24047
|
-
|
|
24048
|
-
|
|
24049
|
-
|
|
24000
|
+
if (typeof cfg.header.content === 'function') {
|
|
24001
|
+
cfg.header.content(this, String(pageNum));
|
|
24002
|
+
}
|
|
24003
|
+
else {
|
|
24004
|
+
headerText = String(cfg.header.content)
|
|
24005
|
+
.replace('${currentPage}', String(pageNum))
|
|
24006
|
+
.replace('${totalPages}', String(this.totalPages));
|
|
24007
|
+
this.jspdfCtx.setFontSize(this.safe(this.pxToPt(cfg.header.contentFontSize), 1));
|
|
24008
|
+
this.setTextColorFromString(cfg.header.contentColor);
|
|
24009
|
+
headerPos = this.computeContentPosition(cfg.header.contentPosition, pageW, pageH, cfg.header.height, mt, mb, 'header', cfg.header.padding);
|
|
24010
|
+
this.textPdf(headerText, headerPos.x, headerPos.y, headerPos.align);
|
|
24011
|
+
}
|
|
24050
24012
|
}
|
|
24051
24013
|
if (cfg === null || cfg === void 0 ? void 0 : cfg.footer) {
|
|
24052
|
-
|
|
24053
|
-
.
|
|
24054
|
-
|
|
24055
|
-
|
|
24056
|
-
|
|
24057
|
-
|
|
24058
|
-
|
|
24014
|
+
if (typeof cfg.footer.content === 'function') {
|
|
24015
|
+
cfg.footer.content(this, String(pageNum));
|
|
24016
|
+
}
|
|
24017
|
+
else {
|
|
24018
|
+
footerText = String(cfg.footer.content)
|
|
24019
|
+
.replace('${currentPage}', String(pageNum))
|
|
24020
|
+
.replace('${totalPages}', String(this.totalPages));
|
|
24021
|
+
this.jspdfCtx.setFontSize(this.safe(this.pxToPt(cfg.footer.contentFontSize), 1));
|
|
24022
|
+
this.setTextColorFromString(cfg.footer.contentColor);
|
|
24023
|
+
footerPos = this.computeContentPosition(cfg.footer.contentPosition, pageW, pageH, cfg.footer.height, mt, mb, 'footer', cfg.footer.padding);
|
|
24024
|
+
this.textPdf(footerText, footerPos.x, footerPos.y, footerPos.align);
|
|
24025
|
+
}
|
|
24059
24026
|
}
|
|
24060
24027
|
return [2 /*return*/];
|
|
24061
24028
|
}
|
|
@@ -24281,6 +24248,8 @@ var offSetTotal = 0;
|
|
|
24281
24248
|
var activePageHeight = 1123;
|
|
24282
24249
|
var pageMarginTop = 0;
|
|
24283
24250
|
var pageMarginBottom = 0;
|
|
24251
|
+
// let realPageSize = 0;
|
|
24252
|
+
var pageTopOffset = 10;
|
|
24284
24253
|
var cloneContainerShallow = function (src) {
|
|
24285
24254
|
var c = Object.create(Object.getPrototypeOf(src));
|
|
24286
24255
|
var srcObj = src;
|
|
@@ -24328,11 +24297,14 @@ var filterTextNodesForPage = function (container, pageStart, pageEnd) {
|
|
|
24328
24297
|
for (var _i = 0, _a = container.textNodes; _i < _a.length; _i++) {
|
|
24329
24298
|
var tc = _a[_i];
|
|
24330
24299
|
var filtered = [];
|
|
24331
|
-
|
|
24332
|
-
var tb = _c[_b];
|
|
24300
|
+
var _loop_1 = function (tb) {
|
|
24333
24301
|
var pageIndex = Math.floor(pageEnd / activePageHeight);
|
|
24334
24302
|
var maxKey = Math.max.apply(Math, Object.keys(offSetPageObj).map(function (k) { return +k; }));
|
|
24335
|
-
var activePageOffset = offSetPageObj[maxKey] || 0;
|
|
24303
|
+
var activePageOffset = pageIndex === 1 ? 0 : offSetPageObj[maxKey] || 0;
|
|
24304
|
+
var prevMaxKey = Math.max.apply(Math, Object.keys(offSetPageObj)
|
|
24305
|
+
.filter(function (k) { return +k < pageIndex; })
|
|
24306
|
+
.map(function (k) { return +k; }));
|
|
24307
|
+
var prevPageOffset = offSetPageObj[prevMaxKey] || 0;
|
|
24336
24308
|
var top_1 = tb.bounds.top + activePageOffset;
|
|
24337
24309
|
var bottom = tb.bounds.top + tb.bounds.height + activePageOffset;
|
|
24338
24310
|
var intersects = bottom > pageStart && top_1 < pageEnd;
|
|
@@ -24340,11 +24312,24 @@ var filterTextNodesForPage = function (container, pageStart, pageEnd) {
|
|
|
24340
24312
|
if (intersects && !crossesToNextPage) {
|
|
24341
24313
|
var offsetNum = 0;
|
|
24342
24314
|
if (top_1 < pageStart) {
|
|
24343
|
-
|
|
24344
|
-
|
|
24345
|
-
|
|
24346
|
-
|
|
24347
|
-
|
|
24315
|
+
if (prevPageOffset || pageIndex > 1) {
|
|
24316
|
+
// Because the offset is only increased when paging occurs, and each time elements are paged, a full traversal is performed
|
|
24317
|
+
// Determine that the current text does not require pagination rendering based on the height calculated on the previous page, so proceed directly to continue
|
|
24318
|
+
var prevPageStart = pageStart - activePageHeight;
|
|
24319
|
+
var prevPageEnd = pageEnd - activePageHeight;
|
|
24320
|
+
var prevTop = tb.bounds.top + prevPageOffset;
|
|
24321
|
+
var prevBottom = tb.bounds.top + tb.bounds.height + prevPageOffset;
|
|
24322
|
+
var prevIntersects = prevBottom > prevPageStart && prevTop < prevPageEnd;
|
|
24323
|
+
var prevCrossesToNextPage = prevBottom > prevPageEnd;
|
|
24324
|
+
if (prevIntersects && !prevCrossesToNextPage) {
|
|
24325
|
+
return "continue";
|
|
24326
|
+
}
|
|
24327
|
+
}
|
|
24328
|
+
offsetNum = pageStart - top_1 + pageTopOffset;
|
|
24329
|
+
var prev = offSetPageObj[pageIndex] || 0;
|
|
24330
|
+
if (!offSetPageObj[pageIndex] || prev < offsetNum) {
|
|
24331
|
+
if (prev < offsetNum) {
|
|
24332
|
+
offSetTotal = offSetTotal - prev + offsetNum;
|
|
24348
24333
|
}
|
|
24349
24334
|
else {
|
|
24350
24335
|
offSetTotal += offsetNum;
|
|
@@ -24353,29 +24338,26 @@ var filterTextNodesForPage = function (container, pageStart, pageEnd) {
|
|
|
24353
24338
|
}
|
|
24354
24339
|
// Fix the issue where no offset is added for the first text container
|
|
24355
24340
|
bottom += offsetNum;
|
|
24341
|
+
top_1 += offsetNum;
|
|
24342
|
+
// fix add realpageSize
|
|
24343
|
+
// TODO
|
|
24344
|
+
// if (offsetNum && realPageSize <= pageIndex) {
|
|
24345
|
+
// realPageSize = pageIndex + 1;
|
|
24346
|
+
// }
|
|
24356
24347
|
}
|
|
24357
24348
|
var visibleTop = Math.max(top_1, pageStart);
|
|
24358
24349
|
var visibleBottom = Math.min(bottom, pageEnd);
|
|
24359
24350
|
var newTop = visibleTop - pageStart;
|
|
24360
24351
|
var newHeight = Math.max(0, visibleBottom - visibleTop);
|
|
24361
|
-
//
|
|
24352
|
+
// Generate new Bounds based on the visible area
|
|
24362
24353
|
var nb = new Bounds$1(tb.bounds.left, newTop + pageMarginTop, tb.bounds.width, newHeight);
|
|
24363
|
-
//
|
|
24364
|
-
// console.log(
|
|
24365
|
-
// 'nb',
|
|
24366
|
-
// nb,
|
|
24367
|
-
// 'pageStart',
|
|
24368
|
-
// pageStart,
|
|
24369
|
-
// 'tb.bounds.top',
|
|
24370
|
-
// tb.bounds.top,
|
|
24371
|
-
// 'activePageOffset',
|
|
24372
|
-
// activePageOffset,
|
|
24373
|
-
// (tb as any).text
|
|
24374
|
-
// );
|
|
24375
|
-
// }
|
|
24376
|
-
// 把文字内容和新的 bounds 一起放进 filtered
|
|
24354
|
+
// Put the text content and the new bounds into filtered
|
|
24377
24355
|
filtered.push({ text: tb.text, bounds: nb });
|
|
24378
24356
|
}
|
|
24357
|
+
};
|
|
24358
|
+
for (var _b = 0, _c = tc.textBounds; _b < _c.length; _b++) {
|
|
24359
|
+
var tb = _c[_b];
|
|
24360
|
+
_loop_1(tb);
|
|
24379
24361
|
}
|
|
24380
24362
|
if (filtered.length > 0) {
|
|
24381
24363
|
var clone = cloneTextContainerShallow(tc);
|
|
@@ -24388,26 +24370,37 @@ var filterTextNodesForPage = function (container, pageStart, pageEnd) {
|
|
|
24388
24370
|
var filterElementForPage = function (container, pageStart, pageEnd) {
|
|
24389
24371
|
var pageIndex = Math.floor(pageEnd / activePageHeight);
|
|
24390
24372
|
var maxKey = Math.max.apply(Math, Object.keys(offSetPageObj).map(function (k) { return +k; }));
|
|
24391
|
-
var activePageOffset = offSetPageObj[maxKey] || 0;
|
|
24373
|
+
var activePageOffset = pageIndex === 1 ? 0 : offSetPageObj[maxKey] || 0;
|
|
24392
24374
|
var top = container.bounds.top + activePageOffset;
|
|
24393
24375
|
var bottom = container.bounds.top + container.bounds.height + activePageOffset;
|
|
24394
24376
|
if (container.divisionDisable && bottom > pageEnd && top < pageEnd) {
|
|
24395
|
-
var offsetNum = pageEnd - top;
|
|
24377
|
+
var offsetNum = pageEnd - top + pageTopOffset;
|
|
24396
24378
|
var prev = offSetPageObj[pageIndex] || 0;
|
|
24397
24379
|
if (!offSetPageObj[pageIndex] || prev < offsetNum) {
|
|
24398
24380
|
offSetTotal += offsetNum - prev;
|
|
24399
24381
|
offSetPageObj[pageIndex] = offSetTotal;
|
|
24400
24382
|
}
|
|
24383
|
+
// fix add realpageSize
|
|
24384
|
+
// TODO
|
|
24385
|
+
// if (offsetNum && realPageSize <= pageIndex) {
|
|
24386
|
+
// realPageSize = pageIndex + 1;
|
|
24387
|
+
// }
|
|
24401
24388
|
return null;
|
|
24402
24389
|
}
|
|
24403
24390
|
var children = [];
|
|
24391
|
+
// Modify the order of `filterTextNodesForPage` and `filterElementForPage`, traversing text nodes first and then child elements, to avoid incorrect setting of `activePageOffset` when the current section spans multiple pages
|
|
24392
|
+
var textNodes = filterTextNodesForPage(container, pageStart, pageEnd);
|
|
24404
24393
|
for (var _i = 0, _a = container.elements; _i < _a.length; _i++) {
|
|
24405
24394
|
var child = _a[_i];
|
|
24406
24395
|
var part = filterElementForPage(child, pageStart, pageEnd);
|
|
24407
24396
|
if (part)
|
|
24408
24397
|
children.push(part);
|
|
24409
24398
|
}
|
|
24410
|
-
|
|
24399
|
+
// Prevent the outer container from not synchronizing the offsetPage when the text spans multiple pages
|
|
24400
|
+
maxKey = Math.max.apply(Math, Object.keys(offSetPageObj).map(function (k) { return +k; }));
|
|
24401
|
+
activePageOffset = pageIndex === 1 ? 0 : offSetPageObj[maxKey] || 0;
|
|
24402
|
+
top = container.bounds.top + activePageOffset;
|
|
24403
|
+
bottom = container.bounds.top + container.bounds.height + activePageOffset;
|
|
24411
24404
|
var visibleTop = Math.max(top, pageStart);
|
|
24412
24405
|
var visibleBottom = Math.min(bottom, pageEnd);
|
|
24413
24406
|
var newHeight = Math.max(0, visibleBottom - visibleTop);
|
|
@@ -24421,18 +24414,19 @@ var filterElementForPage = function (container, pageStart, pageEnd) {
|
|
|
24421
24414
|
clone.bounds = new Bounds$1(container.bounds.left, newTop + pageMarginTop, container.bounds.width, newHeight);
|
|
24422
24415
|
return clone;
|
|
24423
24416
|
};
|
|
24424
|
-
var paginateNode = function (root, pageHeight, initialOffset, pageConfig) {
|
|
24417
|
+
var paginateNode = function (root, pageHeight, initialOffset, totalHeight, pageConfig) {
|
|
24425
24418
|
var _a, _b;
|
|
24426
24419
|
if (initialOffset === void 0) { initialOffset = 0; }
|
|
24427
24420
|
if (initialOffset < 0)
|
|
24428
24421
|
initialOffset = 0;
|
|
24429
24422
|
offSetTotal = 0;
|
|
24430
24423
|
offSetPageObj = {};
|
|
24431
|
-
var maxBottom = computeMaxBottom(root);
|
|
24424
|
+
var maxBottom = totalHeight || computeMaxBottom(root);
|
|
24432
24425
|
pageMarginTop = ((_a = pageConfig === null || pageConfig === void 0 ? void 0 : pageConfig.header) === null || _a === void 0 ? void 0 : _a.height) || 0;
|
|
24433
24426
|
pageMarginBottom = ((_b = pageConfig === null || pageConfig === void 0 ? void 0 : pageConfig.footer) === null || _b === void 0 ? void 0 : _b.height) || 0;
|
|
24434
24427
|
activePageHeight = pageHeight - pageMarginTop - pageMarginBottom;
|
|
24435
24428
|
var totalPages = Math.max(1, Math.ceil((maxBottom - initialOffset) / activePageHeight));
|
|
24429
|
+
// realPageSize = totalPages;
|
|
24436
24430
|
var pages = [];
|
|
24437
24431
|
for (var i = 0; i < totalPages; i++) {
|
|
24438
24432
|
var pageStart = initialOffset + i * activePageHeight;
|
|
@@ -24441,6 +24435,16 @@ var paginateNode = function (root, pageHeight, initialOffset, pageConfig) {
|
|
|
24441
24435
|
if (pageRoot)
|
|
24442
24436
|
pages.push(pageRoot);
|
|
24443
24437
|
}
|
|
24438
|
+
// If the number of pages increases due to divisionDisable or text truncation, recalculation of pages is required
|
|
24439
|
+
// TODO
|
|
24440
|
+
// if (realPageSize > totalPages) {
|
|
24441
|
+
// for (let i = totalPages; i < realPageSize; i++) {
|
|
24442
|
+
// const pageStart = initialOffset + i * activePageHeight;
|
|
24443
|
+
// const pageEnd = pageStart + activePageHeight;
|
|
24444
|
+
// const pageRoot = filterElementForPage(root, pageStart, pageEnd);
|
|
24445
|
+
// if (pageRoot) pages.push(pageRoot);
|
|
24446
|
+
// }
|
|
24447
|
+
// }
|
|
24444
24448
|
// console.log(offSetPageObj, '偏移量');
|
|
24445
24449
|
return pages;
|
|
24446
24450
|
};
|
|
@@ -24542,11 +24546,7 @@ var renderElement$1 = function (element, opts) { return __awaiter$1(void 0, void
|
|
|
24542
24546
|
y: ((_q = opts.y) !== null && _q !== void 0 ? _q : 0) + top,
|
|
24543
24547
|
width: (_r = opts.width) !== null && _r !== void 0 ? _r : Math.ceil(width),
|
|
24544
24548
|
height: (_s = opts.height) !== null && _s !== void 0 ? _s : Math.ceil(height),
|
|
24545
|
-
fontConfig:
|
|
24546
|
-
? isArray$1(opts.fontConfig)
|
|
24547
|
-
? opts.fontConfig
|
|
24548
|
-
: [opts.fontConfig]
|
|
24549
|
-
: undefined,
|
|
24549
|
+
fontConfig: setOptionFontConfig(opts.fontConfig),
|
|
24550
24550
|
encryption: isEmptyValue(opts.encryption) ? undefined : opts.encryption,
|
|
24551
24551
|
precision: (_t = opts.precision) !== null && _t !== void 0 ? _t : 16,
|
|
24552
24552
|
floatPrecision: (_u = opts.floatPrecision) !== null && _u !== void 0 ? _u : 16,
|
|
@@ -24608,7 +24608,7 @@ var renderElement$1 = function (element, opts) { return __awaiter$1(void 0, void
|
|
|
24608
24608
|
};
|
|
24609
24609
|
adjustTop_1(root, offsetY);
|
|
24610
24610
|
}
|
|
24611
|
-
pageRoots = paginateNode(root, pageHeight, renderOptions.y, renderOptions.pageConfig);
|
|
24611
|
+
pageRoots = paginateNode(root, pageHeight, renderOptions.y, renderOptions.height, renderOptions.pageConfig);
|
|
24612
24612
|
Reflect.deleteProperty(root, 'context');
|
|
24613
24613
|
if (backgroundColor === root.styles.backgroundColor) {
|
|
24614
24614
|
root.styles.backgroundColor = COLORS$1.TRANSPARENT;
|