dompdf.js 1.0.4 → 1.1.1
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/.vscode/settings.json +5 -0
- package/README.md +202 -79
- package/dist/dom/element-container.d.ts +4 -2
- package/dist/dompdf.esm.js +25972 -14647
- package/dist/dompdf.esm.js.map +1 -1
- package/dist/dompdf.js +40524 -29199
- package/dist/dompdf.js.map +1 -1
- package/dist/index.d.ts +6 -8
- package/dist/render/canvas/pdf-renderer.d.ts +62 -32
- package/dist/render/page-format-map.d.ts +4 -0
- package/dist/render/paginate.d.ts +3 -0
- package/dist/utils/css-utils.d.ts +2 -0
- package/dist/utils/element-utils.d.ts +7 -0
- package/dist/utils/font-utils.d.ts +7 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/type-utils.d.ts +4 -0
- package/dist/utils/url-path.d.ts +7 -0
- package/fontconverter/FileSaver.js +2 -0
- package/fontconverter/filereader.js +432 -0
- package/fontconverter/fontconverter.html +66 -0
- package/fontconverter/pure-min.css +11 -0
- package/package.json +7 -6
- package/dist/lib/__tests__/index.js +0 -144
- package/dist/lib/__tests__/index.js.map +0 -1
- package/dist/lib/core/__mocks__/cache-storage.js +0 -10
- package/dist/lib/core/__mocks__/cache-storage.js.map +0 -1
- package/dist/lib/core/__mocks__/context.js +0 -22
- package/dist/lib/core/__mocks__/context.js.map +0 -1
- package/dist/lib/core/__mocks__/features.js +0 -12
- package/dist/lib/core/__mocks__/features.js.map +0 -1
- package/dist/lib/core/__mocks__/logger.js +0 -24
- package/dist/lib/core/__mocks__/logger.js.map +0 -1
- package/dist/lib/core/__tests__/cache-storage.js +0 -420
- package/dist/lib/core/__tests__/cache-storage.js.map +0 -1
- package/dist/lib/core/__tests__/logger.js +0 -28
- package/dist/lib/core/__tests__/logger.js.map +0 -1
- package/dist/lib/core/bitwise.js +0 -6
- package/dist/lib/core/bitwise.js.map +0 -1
- package/dist/lib/core/cache-storage.js +0 -198
- package/dist/lib/core/cache-storage.js.map +0 -1
- package/dist/lib/core/context.js +0 -18
- package/dist/lib/core/context.js.map +0 -1
- package/dist/lib/core/debugger.js +0 -25
- package/dist/lib/core/debugger.js.map +0 -1
- package/dist/lib/core/features.js +0 -193
- package/dist/lib/core/features.js.map +0 -1
- package/dist/lib/core/logger.js +0 -92
- package/dist/lib/core/logger.js.map +0 -1
- package/dist/lib/core/util.js +0 -5
- package/dist/lib/core/util.js.map +0 -1
- package/dist/lib/css/IPropertyDescriptor.js +0 -3
- package/dist/lib/css/IPropertyDescriptor.js.map +0 -1
- package/dist/lib/css/ITypeDescriptor.js +0 -3
- package/dist/lib/css/ITypeDescriptor.js.map +0 -1
- package/dist/lib/css/index.js +0 -216
- package/dist/lib/css/index.js.map +0 -1
- package/dist/lib/css/layout/__mocks__/bounds.js +0 -9
- package/dist/lib/css/layout/__mocks__/bounds.js.map +0 -1
- package/dist/lib/css/layout/bounds.js +0 -42
- package/dist/lib/css/layout/bounds.js.map +0 -1
- package/dist/lib/css/layout/text.js +0 -137
- package/dist/lib/css/layout/text.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js +0 -48
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/font-family.js +0 -25
- package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js +0 -88
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +0 -94
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +0 -18
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-clip.js +0 -24
- package/dist/lib/css/property-descriptors/background-clip.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-color.js +0 -11
- package/dist/lib/css/property-descriptors/background-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-image.js +0 -24
- package/dist/lib/css/property-descriptors/background-image.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-origin.js +0 -24
- package/dist/lib/css/property-descriptors/background-origin.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-position.js +0 -17
- package/dist/lib/css/property-descriptors/background-position.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-repeat.js +0 -36
- package/dist/lib/css/property-descriptors/background-repeat.js.map +0 -1
- package/dist/lib/css/property-descriptors/background-size.js +0 -24
- package/dist/lib/css/property-descriptors/background-size.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-color.js +0 -15
- package/dist/lib/css/property-descriptors/border-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-radius.js +0 -18
- package/dist/lib/css/property-descriptors/border-radius.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-style.js +0 -30
- package/dist/lib/css/property-descriptors/border-style.js.map +0 -1
- package/dist/lib/css/property-descriptors/border-width.js +0 -21
- package/dist/lib/css/property-descriptors/border-width.js.map +0 -1
- package/dist/lib/css/property-descriptors/box-shadow.js +0 -55
- package/dist/lib/css/property-descriptors/box-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/color.js +0 -11
- package/dist/lib/css/property-descriptors/color.js.map +0 -1
- package/dist/lib/css/property-descriptors/content.js +0 -20
- package/dist/lib/css/property-descriptors/content.js.map +0 -1
- package/dist/lib/css/property-descriptors/counter-increment.js +0 -31
- package/dist/lib/css/property-descriptors/counter-increment.js.map +0 -1
- package/dist/lib/css/property-descriptors/counter-reset.js +0 -27
- package/dist/lib/css/property-descriptors/counter-reset.js.map +0 -1
- package/dist/lib/css/property-descriptors/direction.js +0 -19
- package/dist/lib/css/property-descriptors/direction.js.map +0 -1
- package/dist/lib/css/property-descriptors/display.js +0 -82
- package/dist/lib/css/property-descriptors/display.js.map +0 -1
- package/dist/lib/css/property-descriptors/duration.js +0 -15
- package/dist/lib/css/property-descriptors/duration.js.map +0 -1
- package/dist/lib/css/property-descriptors/float.js +0 -23
- package/dist/lib/css/property-descriptors/float.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-family.js +0 -33
- package/dist/lib/css/property-descriptors/font-family.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-size.js +0 -11
- package/dist/lib/css/property-descriptors/font-size.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-style.js +0 -21
- package/dist/lib/css/property-descriptors/font-style.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-variant.js +0 -14
- package/dist/lib/css/property-descriptors/font-variant.js.map +0 -1
- package/dist/lib/css/property-descriptors/font-weight.js +0 -26
- package/dist/lib/css/property-descriptors/font-weight.js.map +0 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js +0 -22
- package/dist/lib/css/property-descriptors/letter-spacing.js.map +0 -1
- package/dist/lib/css/property-descriptors/line-break.js +0 -24
- package/dist/lib/css/property-descriptors/line-break.js.map +0 -1
- package/dist/lib/css/property-descriptors/line-height.js +0 -25
- package/dist/lib/css/property-descriptors/line-height.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-image.js +0 -17
- package/dist/lib/css/property-descriptors/list-style-image.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-position.js +0 -19
- package/dist/lib/css/property-descriptors/list-style-position.js.map +0 -1
- package/dist/lib/css/property-descriptors/list-style-type.js +0 -123
- package/dist/lib/css/property-descriptors/list-style-type.js.map +0 -1
- package/dist/lib/css/property-descriptors/margin.js +0 -14
- package/dist/lib/css/property-descriptors/margin.js.map +0 -1
- package/dist/lib/css/property-descriptors/opacity.js +0 -17
- package/dist/lib/css/property-descriptors/opacity.js.map +0 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js +0 -19
- package/dist/lib/css/property-descriptors/overflow-wrap.js.map +0 -1
- package/dist/lib/css/property-descriptors/overflow.js +0 -28
- package/dist/lib/css/property-descriptors/overflow.js.map +0 -1
- package/dist/lib/css/property-descriptors/padding.js +0 -15
- package/dist/lib/css/property-descriptors/padding.js.map +0 -1
- package/dist/lib/css/property-descriptors/paint-order.js +0 -34
- package/dist/lib/css/property-descriptors/paint-order.js.map +0 -1
- package/dist/lib/css/property-descriptors/position.js +0 -23
- package/dist/lib/css/property-descriptors/position.js.map +0 -1
- package/dist/lib/css/property-descriptors/quotes.js +0 -42
- package/dist/lib/css/property-descriptors/quotes.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-align.js +0 -22
- package/dist/lib/css/property-descriptors/text-align.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-color.js +0 -11
- package/dist/lib/css/property-descriptors/text-decoration-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-decoration-line.js +0 -29
- package/dist/lib/css/property-descriptors/text-decoration-line.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-shadow.js +0 -47
- package/dist/lib/css/property-descriptors/text-shadow.js.map +0 -1
- package/dist/lib/css/property-descriptors/text-transform.js +0 -21
- package/dist/lib/css/property-descriptors/text-transform.js.map +0 -1
- package/dist/lib/css/property-descriptors/transform-origin.js +0 -25
- package/dist/lib/css/property-descriptors/transform-origin.js.map +0 -1
- package/dist/lib/css/property-descriptors/transform.js +0 -37
- package/dist/lib/css/property-descriptors/transform.js.map +0 -1
- package/dist/lib/css/property-descriptors/visibility.js +0 -21
- package/dist/lib/css/property-descriptors/visibility.js.map +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +0 -11
- package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +0 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +0 -17
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +0 -1
- package/dist/lib/css/property-descriptors/word-break.js +0 -27
- package/dist/lib/css/property-descriptors/word-break.js.map +0 -1
- package/dist/lib/css/property-descriptors/z-index.js +0 -20
- package/dist/lib/css/property-descriptors/z-index.js.map +0 -1
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +0 -34
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +0 -1
- package/dist/lib/css/syntax/parser.js +0 -147
- package/dist/lib/css/syntax/parser.js.map +0 -1
- package/dist/lib/css/syntax/tokenizer.js +0 -630
- package/dist/lib/css/syntax/tokenizer.js.map +0 -1
- package/dist/lib/css/types/__tests__/color-tests.js +0 -66
- package/dist/lib/css/types/__tests__/color-tests.js.map +0 -1
- package/dist/lib/css/types/__tests__/image-tests.js +0 -233
- package/dist/lib/css/types/__tests__/image-tests.js.map +0 -1
- package/dist/lib/css/types/angle.js +0 -81
- package/dist/lib/css/types/angle.js.map +0 -1
- package/dist/lib/css/types/color.js +0 -311
- package/dist/lib/css/types/color.js.map +0 -1
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js +0 -33
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js +0 -84
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/-webkit-gradient.js +0 -60
- package/dist/lib/css/types/functions/-webkit-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js +0 -68
- package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/counter.js +0 -374
- package/dist/lib/css/types/functions/counter.js.map +0 -1
- package/dist/lib/css/types/functions/gradient.js +0 -165
- package/dist/lib/css/types/functions/gradient.js.map +0 -1
- package/dist/lib/css/types/functions/linear-gradient.js +0 -28
- package/dist/lib/css/types/functions/linear-gradient.js.map +0 -1
- package/dist/lib/css/types/functions/radial-gradient.js +0 -91
- package/dist/lib/css/types/functions/radial-gradient.js.map +0 -1
- package/dist/lib/css/types/image.js +0 -53
- package/dist/lib/css/types/image.js.map +0 -1
- package/dist/lib/css/types/index.js +0 -3
- package/dist/lib/css/types/index.js.map +0 -1
- package/dist/lib/css/types/length-percentage.js +0 -52
- package/dist/lib/css/types/length-percentage.js.map +0 -1
- package/dist/lib/css/types/length.js +0 -8
- package/dist/lib/css/types/length.js.map +0 -1
- package/dist/lib/css/types/time.js +0 -18
- package/dist/lib/css/types/time.js.map +0 -1
- package/dist/lib/dom/__mocks__/document-cloner.js +0 -24
- package/dist/lib/dom/__mocks__/document-cloner.js.map +0 -1
- package/dist/lib/dom/document-cloner.js +0 -530
- package/dist/lib/dom/document-cloner.js.map +0 -1
- package/dist/lib/dom/element-container.js +0 -37
- package/dist/lib/dom/element-container.js.map +0 -1
- package/dist/lib/dom/elements/li-element-container.js +0 -30
- package/dist/lib/dom/elements/li-element-container.js.map +0 -1
- package/dist/lib/dom/elements/ol-element-container.js +0 -31
- package/dist/lib/dom/elements/ol-element-container.js.map +0 -1
- package/dist/lib/dom/elements/select-element-container.js +0 -31
- package/dist/lib/dom/elements/select-element-container.js.map +0 -1
- package/dist/lib/dom/elements/textarea-element-container.js +0 -30
- package/dist/lib/dom/elements/textarea-element-container.js.map +0 -1
- package/dist/lib/dom/node-parser.js +0 -360
- package/dist/lib/dom/node-parser.js.map +0 -1
- package/dist/lib/dom/replaced-elements/canvas-element-container.js +0 -32
- package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/iframe-element-container.js +0 -54
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/image-element-container.js +0 -33
- package/dist/lib/dom/replaced-elements/image-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/index.js +0 -3
- package/dist/lib/dom/replaced-elements/index.js.map +0 -1
- package/dist/lib/dom/replaced-elements/input-element-container.js +0 -102
- package/dist/lib/dom/replaced-elements/input-element-container.js.map +0 -1
- package/dist/lib/dom/replaced-elements/pseudo-elements.js +0 -1
- package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +0 -1
- package/dist/lib/dom/replaced-elements/svg-element-container.js +0 -38
- package/dist/lib/dom/replaced-elements/svg-element-container.js.map +0 -1
- package/dist/lib/dom/text-container.js +0 -32
- package/dist/lib/dom/text-container.js.map +0 -1
- package/dist/lib/index.js +0 -202
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/invariant.js +0 -10
- package/dist/lib/invariant.js.map +0 -1
- package/dist/lib/render/background.js +0 -187
- package/dist/lib/render/background.js.map +0 -1
- package/dist/lib/render/bezier-curve.js +0 -36
- package/dist/lib/render/bezier-curve.js.map +0 -1
- package/dist/lib/render/border.js +0 -105
- package/dist/lib/render/border.js.map +0 -1
- package/dist/lib/render/bound-curves.js +0 -190
- package/dist/lib/render/bound-curves.js.map +0 -1
- package/dist/lib/render/box-sizing.js +0 -21
- package/dist/lib/render/box-sizing.js.map +0 -1
- package/dist/lib/render/canvas/canvas-renderer2.js +0 -1415
- package/dist/lib/render/canvas/canvas-renderer2.js.map +0 -1
- package/dist/lib/render/canvas/foreignobject-renderer.js +0 -108
- package/dist/lib/render/canvas/foreignobject-renderer.js.map +0 -1
- package/dist/lib/render/canvas/pdf-renderer.js +0 -1406
- package/dist/lib/render/canvas/pdf-renderer.js.map +0 -1
- package/dist/lib/render/effects.js +0 -41
- package/dist/lib/render/effects.js.map +0 -1
- package/dist/lib/render/font-metrics.js +0 -55
- package/dist/lib/render/font-metrics.js.map +0 -1
- package/dist/lib/render/path.js +0 -27
- package/dist/lib/render/path.js.map +0 -1
- package/dist/lib/render/renderer.js +0 -12
- package/dist/lib/render/renderer.js.map +0 -1
- package/dist/lib/render/stacking-context.js +0 -172
- package/dist/lib/render/stacking-context.js.map +0 -1
- package/dist/lib/render/vector.js +0 -18
- package/dist/lib/render/vector.js.map +0 -1
- package/dist/render/canvas/canvas-renderer2.d.ts +0 -81
- package/dist/types/__tests__/index.d.ts +0 -1
- package/dist/types/core/__mocks__/cache-storage.d.ts +0 -2
- package/dist/types/core/__mocks__/context.d.ts +0 -9
- package/dist/types/core/__mocks__/features.d.ts +0 -8
- package/dist/types/core/__mocks__/logger.d.ts +0 -9
- package/dist/types/core/__tests__/cache-storage.d.ts +0 -1
- package/dist/types/core/__tests__/logger.d.ts +0 -1
- package/dist/types/core/bitwise.d.ts +0 -1
- package/dist/types/core/cache-storage.d.ts +0 -26
- package/dist/types/core/context.d.ts +0 -15
- package/dist/types/core/debugger.d.ts +0 -8
- package/dist/types/core/features.d.ts +0 -12
- package/dist/types/core/logger.d.ts +0 -18
- package/dist/types/core/util.d.ts +0 -1
- package/dist/types/css/IPropertyDescriptor.d.ts +0 -36
- package/dist/types/css/ITypeDescriptor.d.ts +0 -6
- package/dist/types/css/index.d.ts +0 -132
- package/dist/types/css/layout/__mocks__/bounds.d.ts +0 -2
- package/dist/types/css/layout/bounds.d.ts +0 -14
- package/dist/types/css/layout/text.d.ts +0 -10
- package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +0 -1
- package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +0 -1
- package/dist/types/css/property-descriptors/background-clip.d.ts +0 -8
- package/dist/types/css/property-descriptors/background-color.d.ts +0 -2
- package/dist/types/css/property-descriptors/background-image.d.ts +0 -3
- package/dist/types/css/property-descriptors/background-origin.d.ts +0 -8
- package/dist/types/css/property-descriptors/background-position.d.ts +0 -5
- package/dist/types/css/property-descriptors/background-repeat.d.ts +0 -9
- package/dist/types/css/property-descriptors/background-size.d.ts +0 -11
- package/dist/types/css/property-descriptors/border-color.d.ts +0 -5
- package/dist/types/css/property-descriptors/border-radius.d.ts +0 -7
- package/dist/types/css/property-descriptors/border-style.d.ts +0 -12
- package/dist/types/css/property-descriptors/border-width.d.ts +0 -5
- package/dist/types/css/property-descriptors/box-shadow.d.ts +0 -14
- package/dist/types/css/property-descriptors/color.d.ts +0 -2
- package/dist/types/css/property-descriptors/content.d.ts +0 -4
- package/dist/types/css/property-descriptors/counter-increment.d.ts +0 -7
- package/dist/types/css/property-descriptors/counter-reset.d.ts +0 -7
- package/dist/types/css/property-descriptors/direction.d.ts +0 -6
- package/dist/types/css/property-descriptors/display.d.ts +0 -35
- package/dist/types/css/property-descriptors/duration.d.ts +0 -2
- package/dist/types/css/property-descriptors/float.d.ts +0 -9
- package/dist/types/css/property-descriptors/font-family.d.ts +0 -4
- package/dist/types/css/property-descriptors/font-size.d.ts +0 -2
- package/dist/types/css/property-descriptors/font-style.d.ts +0 -7
- package/dist/types/css/property-descriptors/font-variant.d.ts +0 -2
- package/dist/types/css/property-descriptors/font-weight.d.ts +0 -2
- package/dist/types/css/property-descriptors/letter-spacing.d.ts +0 -2
- package/dist/types/css/property-descriptors/line-break.d.ts +0 -6
- package/dist/types/css/property-descriptors/line-height.d.ts +0 -4
- package/dist/types/css/property-descriptors/list-style-image.d.ts +0 -3
- package/dist/types/css/property-descriptors/list-style-position.d.ts +0 -6
- package/dist/types/css/property-descriptors/list-style-type.d.ts +0 -58
- package/dist/types/css/property-descriptors/margin.d.ts +0 -5
- package/dist/types/css/property-descriptors/opacity.d.ts +0 -2
- package/dist/types/css/property-descriptors/overflow-wrap.d.ts +0 -6
- package/dist/types/css/property-descriptors/overflow.d.ts +0 -9
- package/dist/types/css/property-descriptors/padding.d.ts +0 -5
- package/dist/types/css/property-descriptors/paint-order.d.ts +0 -8
- package/dist/types/css/property-descriptors/position.d.ts +0 -9
- package/dist/types/css/property-descriptors/quotes.d.ts +0 -8
- package/dist/types/css/property-descriptors/text-align.d.ts +0 -7
- package/dist/types/css/property-descriptors/text-decoration-color.d.ts +0 -2
- package/dist/types/css/property-descriptors/text-decoration-line.d.ts +0 -10
- package/dist/types/css/property-descriptors/text-shadow.d.ts +0 -12
- package/dist/types/css/property-descriptors/text-transform.d.ts +0 -8
- package/dist/types/css/property-descriptors/transform-origin.d.ts +0 -4
- package/dist/types/css/property-descriptors/transform.d.ts +0 -4
- package/dist/types/css/property-descriptors/visibility.d.ts +0 -7
- package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +0 -2
- package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +0 -2
- package/dist/types/css/property-descriptors/word-break.d.ts +0 -7
- package/dist/types/css/property-descriptors/z-index.d.ts +0 -7
- package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +0 -1
- package/dist/types/css/syntax/parser.d.ts +0 -34
- package/dist/types/css/syntax/tokenizer.d.ts +0 -94
- package/dist/types/css/types/__tests__/color-tests.d.ts +0 -1
- package/dist/types/css/types/__tests__/image-tests.d.ts +0 -1
- package/dist/types/css/types/angle.d.ts +0 -7
- package/dist/types/css/types/color.d.ts +0 -11
- package/dist/types/css/types/functions/-prefix-linear-gradient.d.ts +0 -4
- package/dist/types/css/types/functions/-prefix-radial-gradient.d.ts +0 -4
- package/dist/types/css/types/functions/-webkit-gradient.d.ts +0 -4
- package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +0 -1
- package/dist/types/css/types/functions/counter.d.ts +0 -10
- package/dist/types/css/types/functions/gradient.d.ts +0 -7
- package/dist/types/css/types/functions/linear-gradient.d.ts +0 -4
- package/dist/types/css/types/functions/radial-gradient.d.ts +0 -12
- package/dist/types/css/types/image.d.ts +0 -54
- package/dist/types/css/types/index.d.ts +0 -1
- package/dist/types/css/types/length-percentage.d.ts +0 -11
- package/dist/types/css/types/length.d.ts +0 -4
- package/dist/types/css/types/time.d.ts +0 -2
- package/dist/types/dom/__mocks__/document-cloner.d.ts +0 -6
- package/dist/types/dom/document-cloner.d.ts +0 -45
- package/dist/types/dom/element-container.d.ts +0 -21
- package/dist/types/dom/elements/li-element-container.d.ts +0 -6
- package/dist/types/dom/elements/ol-element-container.d.ts +0 -7
- package/dist/types/dom/elements/select-element-container.d.ts +0 -6
- package/dist/types/dom/elements/textarea-element-container.d.ts +0 -6
- package/dist/types/dom/node-parser.d.ts +0 -23
- package/dist/types/dom/replaced-elements/canvas-element-container.d.ts +0 -8
- package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +0 -11
- package/dist/types/dom/replaced-elements/image-element-container.d.ts +0 -8
- package/dist/types/dom/replaced-elements/index.d.ts +0 -4
- package/dist/types/dom/replaced-elements/input-element-container.d.ts +0 -12
- package/dist/types/dom/replaced-elements/pseudo-elements.d.ts +0 -0
- package/dist/types/dom/replaced-elements/svg-element-container.d.ts +0 -8
- package/dist/types/dom/text-container.d.ts +0 -8
- package/dist/types/index.d.ts +0 -18
- package/dist/types/invariant.d.ts +0 -1
- package/dist/types/render/background.d.ts +0 -16
- package/dist/types/render/bezier-curve.d.ts +0 -14
- package/dist/types/render/border.d.ts +0 -6
- package/dist/types/render/bound-curves.d.ts +0 -32
- package/dist/types/render/box-sizing.d.ts +0 -4
- package/dist/types/render/canvas/canvas-renderer2.d.ts +0 -81
- package/dist/types/render/canvas/foreignobject-renderer.d.ts +0 -11
- package/dist/types/render/canvas/pdf-renderer.d.ts +0 -80
- package/dist/types/render/effects.d.ts +0 -38
- package/dist/types/render/font-metrics.d.ts +0 -11
- package/dist/types/render/path.d.ts +0 -13
- package/dist/types/render/renderer.d.ts +0 -7
- package/dist/types/render/stacking-context.d.ts +0 -24
- package/dist/types/render/vector.d.ts +0 -9
package/README.md
CHANGED
|
@@ -7,17 +7,14 @@
|
|
|
7
7
|
[](https://www.npmjs.org/package/html2canvas)
|
|
8
8
|
[](https://www.npmjs.org/package/html2canvas) -->
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
该脚本允许您直接在用户浏览器上将网页或部分网页生成为可编辑、非图片式、可打印的矢量 pdf。支持分页,最多可以生成上数千页的 pdf 文件。由于生成是基于 DOM 的,因此可能与实际表现不会 100% 一致。如果是复杂的 pdf 生成需求,不建议使用。
|
|
12
11
|
|
|
13
12
|
在线体验:[在线体验](https://dompdfjs.lisky.com.cn)
|
|
14
13
|
|
|
15
|
-
pdf生成示例
|
|
14
|
+
### pdf 生成示例
|
|
16
15
|
|
|
17
|
-
### pdf生成示例
|
|
18
16
|

|
|
19
17
|
|
|
20
|
-
|
|
21
18
|
### 它是如何工作的
|
|
22
19
|
|
|
23
20
|
该脚本基于[html2canvas](https://github.com/niklasvh/html2canvas)和[jspdf](https://github.com/MrRio/jsPDF),与以往将 html 页面通过 html2canvas 渲染为图片,再通过 jspdf 将图片生成 pdf 文件不同,该脚本通过读取 DOM 和应用于元素的不同样式,改造了 html2canvas 的 canvas-renderer 文件,调用 jspdf 的方法生成 pdf 文件。
|
|
@@ -25,20 +22,19 @@ pdf生成示例
|
|
|
25
22
|
|
|
26
23
|
1. 不需要服务器端的任何渲染,因为整个 pdf 是在**客户端浏览器**上创建的。
|
|
27
24
|
2. 生成的是真正的 pdf 文件,而不是图片式的,这样生成的 pdf 质量更高,您也可以编辑和打印生成 pdf 文件。
|
|
28
|
-
3. 更小的 pdf
|
|
25
|
+
3. 更小的 pdf 文件体积。
|
|
26
|
+
4. 不受 canvas 渲染高度限制,可以生成数千页的 pdf 文件。
|
|
29
27
|
|
|
30
28
|
当然,它也有一些缺点:
|
|
31
29
|
|
|
32
30
|
1. 由于是基于 DOM 的,所以可能与实际表现不会 100% 一致。
|
|
33
31
|
2. 有的 css 属性还没有被支持,查看[支持的 css 属性](https://www.html2canvas.cn/html2canvas-features.html)。
|
|
34
|
-
3. 不适合在 nodejs 中使用。
|
|
35
|
-
4. 有的样式可能无法被正确渲染,比如:
|
|
36
|
-
- text-shadow
|
|
37
32
|
|
|
38
33
|
### 已实现功能
|
|
39
34
|
|
|
40
35
|
| 功能 | 状态 | 说明 |
|
|
41
36
|
| -------- | ---- | --------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| 分页 | ✅ | 支持 PDF 分页渲染,可生成数千页的 PDF 文件 |
|
|
42
38
|
| 文本渲染 | ✅ | 支持基础文本内容渲染,font-family,font-size,font-style,font-variant,color 等,支持文字描边,不支持文字阴影 |
|
|
43
39
|
| 图片渲染 | ✅ | 支持网络图片,base64 图片,svg 图片 |
|
|
44
40
|
| 边框 | ✅ | 支持 border-width,border-color,border-style,border-radius,暂时只实现了实线边框 |
|
|
@@ -47,105 +43,233 @@ pdf生成示例
|
|
|
47
43
|
| svg | ✅ | 支持渲染 svg |
|
|
48
44
|
| 阴影渲染 | ✅ | 使用 foreignObjectRendering,支持边框阴影渲染 |
|
|
49
45
|
| 渐变渲染 | ✅ | 使用 foreignObjectRendering,支持背景渐变渲染 |
|
|
50
|
-
| iframe | ❌ |
|
|
46
|
+
| iframe | ❌ | 暂不支持渲染 iframe |
|
|
51
47
|
|
|
52
|
-
### foreignObjectRendering 使用
|
|
53
48
|
|
|
54
|
-
在 dom 十分复杂,或者 pdf 无法绘制的情况(比如:复杂的表格,边框阴影,渐变等),可以考虑使用 foreignObjectRendering。
|
|
55
|
-
给要渲染的元素添加 foreignObjectRendering 属性,就可以通过 svg 的 foreignObject 将它渲染成一张背景图插入到 pdf 文件中。
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
所以,在使用 foreignObjectRendering 时,需要注意以下事项:
|
|
50
|
+
### 使用方法
|
|
59
51
|
|
|
60
|
-
|
|
61
|
-
2. IE 浏览器完全不支持,推荐在 chrome 和 firefox,edge 中使用。
|
|
62
|
-
3. 生成的图片会导致 pdf 文件体积变大。
|
|
52
|
+
dompdf 库使用 `Promise` 并期望它们在全局上下文中可用。如果您希望支持不原生支持 `Promise` 的[较旧浏览器](http://caniuse.com/#search=promise),请在引入 `dompdf` 之前包含一个 polyfill,比如 [es6-promise](https://github.com/jakearchibald/es6-promise)。
|
|
63
53
|
|
|
64
|
-
|
|
54
|
+
安装:
|
|
55
|
+
|
|
56
|
+
npm install dompdf.js --save
|
|
57
|
+
|
|
58
|
+
CDN 引入:
|
|
65
59
|
|
|
66
60
|
```html
|
|
67
|
-
<
|
|
68
|
-
<div
|
|
69
|
-
style="width: 50px;height: 50px;border: 1px solid #000;box-shadow: 2px 2px 5px rgba(0,0,0,0.3);background: linear-gradient(45deg, #ff6b6b, #4ecdc4);"
|
|
70
|
-
>
|
|
71
|
-
这是一个div元素
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
61
|
+
<script src="https://cdn.jsdelivr.net/npm/dompdf.js@latest/dist/dompdf.js"></script>
|
|
74
62
|
```
|
|
75
63
|
|
|
76
|
-
|
|
64
|
+
#### 基础用法
|
|
77
65
|
|
|
78
|
-
|
|
66
|
+
```js
|
|
67
|
+
import dompdf from "dompdf.js";
|
|
68
|
+
|
|
69
|
+
dompdf(document.querySelector("#capture"), options)
|
|
70
|
+
.then((blob) => {
|
|
71
|
+
const url = URL.createObjectURL(blob);
|
|
72
|
+
const a = document.createElement("a");
|
|
73
|
+
a.href = url;
|
|
74
|
+
a.download = "example.pdf";
|
|
75
|
+
document.body.appendChild(a);
|
|
76
|
+
a.click();
|
|
77
|
+
})
|
|
78
|
+
.catch((err) => {
|
|
79
|
+
console.error(err);
|
|
80
|
+
});
|
|
81
|
+
```
|
|
79
82
|
|
|
80
|
-
- Firefox 3.5+
|
|
81
|
-
- Google Chrome
|
|
82
|
-
- Opera 12+
|
|
83
|
-
- IE9+
|
|
84
|
-
- Safari 6+
|
|
85
83
|
|
|
86
|
-
|
|
84
|
+
#### PDF 分页渲染
|
|
87
85
|
|
|
88
|
-
dompdf
|
|
86
|
+
默认情况下,dompdf 会将整个文档渲染到单页中。
|
|
89
87
|
|
|
90
|
-
|
|
88
|
+
您可以通过设置 `pagination` 选项为 `true` 来开启分页渲染。通过 pageConfig 字段自定义页眉页脚的尺寸,内容,字体颜色/大小,位置等信息。
|
|
91
89
|
|
|
92
|
-
|
|
90
|
+
```js
|
|
91
|
+
import dompdf from "dompdf.js";
|
|
93
92
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
dompdf(document.querySelector("#capture"), {
|
|
94
|
+
pagination: true,
|
|
95
|
+
format: "a4",
|
|
96
|
+
pageConfig: {
|
|
97
|
+
header: {
|
|
98
|
+
content: "这是页眉",
|
|
99
|
+
height: 50,
|
|
100
|
+
contentColor: "#333333",
|
|
101
|
+
contentFontSize: 12,
|
|
102
|
+
contentPosition: "center",
|
|
103
|
+
padding: [0, 0, 0, 0],
|
|
104
|
+
},
|
|
105
|
+
footer: {
|
|
106
|
+
content: "第${currentPage}页/共${totalPages}页",
|
|
107
|
+
height: 50,
|
|
108
|
+
contentColor: "#333333",
|
|
109
|
+
contentFontSize: 12,
|
|
110
|
+
contentPosition: "center",
|
|
111
|
+
padding: [0, 0, 0, 0],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
})
|
|
115
|
+
.then((blob) => {
|
|
116
|
+
const url = URL.createObjectURL(blob);
|
|
117
|
+
const a = document.createElement("a");
|
|
118
|
+
a.href = url;
|
|
119
|
+
a.download = "example.pdf";
|
|
120
|
+
document.body.appendChild(a);
|
|
121
|
+
a.click();
|
|
122
|
+
})
|
|
123
|
+
.catch((err) => {
|
|
124
|
+
console.error(err);
|
|
125
|
+
});
|
|
97
126
|
```
|
|
127
|
+
##### 更精准的分页控制-`divisionDisable` 属性
|
|
128
|
+
|
|
129
|
+
如果您不希望某个容器在分页时被拆分时,为该元素添加 `divisionDisable` 属性,跨页时它会整体移至下一页。
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
#### options 参数
|
|
133
|
+
|
|
134
|
+
| 参数名 | 必传 | 默认值 | 类型 | 说明 |
|
|
135
|
+
| ------------------ | ---- | ------------- | ------------------- | -------------------------------------------------------------- |
|
|
136
|
+
| `useCORS` | 否 | `false` | `boolean` | 允许跨域资源(需服务端 CORS 配置) |
|
|
137
|
+
| `backgroundColor` | 否 | 自动解析/白色 | `string \| null` | 覆盖页面背景色;传 `null` 生成透明背景 |
|
|
138
|
+
| `fontConfig` | 否 | - | `object \| Array` | 非英文字体配置,见下表 |
|
|
139
|
+
| `encryption` | 否 | 空配置 | `object` | PDF 加密配置,属性`userPassword` 用于给定权限列表下用户的密码;属性`ownerPassword` 需要设置userPassword和ownerPassword以进行正确的身份验证;属性`userPermissions` 用于指定用户权限,可选值为 `['print', 'modify', 'copy', 'annot-forms']` |
|
|
140
|
+
| `precision` | 否 | `16` | `number` | 元素位置的精度 |
|
|
141
|
+
| `compress` | 否 | `false` | `boolean` | 是否压缩PDF |
|
|
142
|
+
| `putOnlyUsedFonts` | 否 | `false` | `boolean` | 仅将实际使用的字体嵌入 PDF |
|
|
143
|
+
| `pagination` | 否 | `false` | `boolean` | 开启分页渲染 |
|
|
144
|
+
| `format` | 否 | `'a4'` | `string` | 页面规格,支持 `a0–a10`、`b0–b10`、`c0–c10`、`letter` 等 |
|
|
145
|
+
| `pageConfig` | 否 | 见下表 | `object` | 页眉页脚配置 |
|
|
146
|
+
| `onJspdfReady` | 否 | `` | `Function(jspdf: jsPDF)` | jspdf实例初始化
|
|
147
|
+
| `onJspdfFinish` | 否 | `` | `Function(jspdf: jsPDF)` | jspdf实例绘制pdf完成
|
|
148
|
+
|
|
149
|
+
##### `pageConfig`字段:
|
|
150
|
+
|
|
151
|
+
| 参数名 | 默认值 | 类型 | 说明 |
|
|
152
|
+
| -------- | ------------------------ | ------ | -------- |
|
|
153
|
+
| `header` | 见下表 pageConfigOptions | object | 页眉设置 |
|
|
154
|
+
| `footer` | 见下表 pageConfigOptions | object | 页脚设置 |
|
|
98
155
|
|
|
99
|
-
#### 基础用法
|
|
100
156
|
|
|
157
|
+
##### `pageConfigOptions` 字段:
|
|
158
|
+
|
|
159
|
+
| 参数名 | 默认值 | 类型 | 说明 |
|
|
160
|
+
| ----------------- | --------------------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
161
|
+
| `content` | 页眉默认值为空,页脚默认值为`${currentPage}/${totalPages}` | `string` | 文本内容,支持 `${currentPage}`、`${totalPages}`,`${currentPage}`为当前页码,`${totalPages}`为总页码 |
|
|
162
|
+
| `height` | `50` | `number` | 区域高度(px) |
|
|
163
|
+
| `contentPosition` | `'center'` | `string \| [number, number]` | 文本位置枚举 `center`、`centerLeft` 、 `centerRight`、`centerTop`、 `centerBottom`、`leftTop`、 `leftBottom`、`rightTop`、`rightBottom`或坐标 `[x,y]` |
|
|
164
|
+
| `contentColor` | `'#333333'` | `string` | 文本颜色 |
|
|
165
|
+
| `contentFontSize` | `16` | `number` | 文本字号(px) |
|
|
166
|
+
| `padding` | `[0,24,0,24]` | `[number, number, number, number]` | 上/右/下/左内边距(px) |
|
|
167
|
+
|
|
168
|
+
##### 字体配置(`fontConfig`)字段:
|
|
169
|
+
|
|
170
|
+
| 字段 | 必传 | 默认值 | 类型 | 说明 |
|
|
171
|
+
| ------------ | ---------------------- | ------ | -------- | ---------------------------------- |
|
|
172
|
+
| `fontFamily` | 是(启用自定义字体时) | `''` | `string` | 字体家族名(与注入的 `.ttf` 同名) |
|
|
173
|
+
| `fontBase64` | 是(启用自定义字体时) | `''` | `string` | `.ttf` 的 Base64 字符串内容 |
|
|
174
|
+
| `fontStyle` | 是(启用自定义字体时) | `''` | `string` | `normal \| italic` |
|
|
175
|
+
| `fontWeight` | 是(启用自定义字体时字体加粗) | `''` | `number` | `400 \| 700` |
|
|
176
|
+
|
|
177
|
+
#### 乱码问题-字体导入支持
|
|
178
|
+
|
|
179
|
+
由于 jspdf 只支持英文,所以其他语言会出现乱码的问题,需要导入对应的字体文件来解决,如果需要自定义字体,在[这里](https://github.com/lmn1919/dompdf.js/tree/main/fontconverter)将字体 tff 文件转化成 base64 格式的 js 文件,中文字体推荐使用[思源黑体](https://github.com/lmn1919/dompdf.js/blob/main/examples/SourceHanSansSC-Normal-Min-normal.js),体积较小。
|
|
180
|
+
在代码中引入该文件即可。
|
|
181
|
+
|
|
182
|
+
> **注意:导入字体会导致最终的pdf体积增大,如果对最终pdf体积有要求的,建议精简字体,可以剔除不需要的字体。或者使用`Fontmin`等工具对字体进行瘦身**
|
|
101
183
|
```js
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
184
|
+
<script type="text/javascript" src="./SourceHanSansSC-Normal-Min-normal.js"></script>
|
|
185
|
+
<script type="text/javascript" src="./SourceHanSansCNBold-bold.js"></script>
|
|
186
|
+
<script type="text/javascript" src="./SourceHanSansCNNormal-normal.js"></script>
|
|
187
|
+
<script type="text/javascript" src="./SourceHanSansCNRegularItalic-normal.js"></script>
|
|
188
|
+
<script>
|
|
189
|
+
/* 导入字体 */
|
|
190
|
+
dompdf(document.querySelector('#capture'), {
|
|
191
|
+
useCORS: true,
|
|
192
|
+
/* 单个字体导入 */
|
|
193
|
+
/* fontConfig: {
|
|
194
|
+
fontFamily: 'SourceHanSansSC-Normal-Min',
|
|
195
|
+
fontBase64: window.fontBase64,
|
|
196
|
+
fontStyle: 'normal',
|
|
197
|
+
fontWeight: 400,
|
|
198
|
+
}, */
|
|
199
|
+
/* 导入注册多种字体,需要支持什么语种,样式,就导入对应的字体 */
|
|
200
|
+
fontConfig: [
|
|
201
|
+
{
|
|
202
|
+
fontFamily: 'SourceHanSansCNRegularItalic',
|
|
203
|
+
fontBase64: window.SourceHanSansCNRegularItalic,
|
|
204
|
+
fontUrl: '',
|
|
205
|
+
fontWeight: 400,
|
|
206
|
+
fontStyle: 'italic' // 斜体
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
fontFamily: 'SourceHanSansCNBold',
|
|
210
|
+
fontBase64: window.SourceHanSansCNBold,
|
|
211
|
+
fontUrl: '',
|
|
212
|
+
fontWeight: 700, // 加粗
|
|
213
|
+
fontStyle: 'normal'
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
fontFamily: 'SourceHanSansCNNormal',
|
|
217
|
+
fontBase64: window.SourceHanSansCNNormal,
|
|
218
|
+
fontUrl: '',
|
|
219
|
+
fontWeight: 400,
|
|
220
|
+
fontStyle: 'normal'
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
})
|
|
106
224
|
.then(function (blob) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
225
|
+
const url = URL.createObjectURL(blob);
|
|
226
|
+
const a = document.createElement('a');
|
|
227
|
+
a.href = url;
|
|
228
|
+
a.download = 'example.pdf';
|
|
229
|
+
document.body.appendChild(a);
|
|
230
|
+
a.click();
|
|
113
231
|
})
|
|
114
232
|
.catch(function (err) {
|
|
115
|
-
|
|
233
|
+
console.error(err);
|
|
116
234
|
});
|
|
235
|
+
</script>
|
|
117
236
|
```
|
|
118
237
|
|
|
119
|
-
####
|
|
238
|
+
#### 绘制渐变色、阴影等复杂样式-foreignObjectRendering 使用
|
|
120
239
|
|
|
121
|
-
|
|
122
|
-
|
|
240
|
+
在 dom 十分复杂,或者 pdf 无法绘制的情况(比如:复杂的表格,边框阴影,渐变等),可以考虑使用 foreignObjectRendering。
|
|
241
|
+
给要渲染的元素添加 foreignObjectRendering 属性,就可以通过 svg 的 foreignObject 将它渲染成一张背景图插入到 pdf 文件中。
|
|
123
242
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
dompdf(document.querySelector("#capture"), {
|
|
127
|
-
useCORS: true, //是否允许跨域
|
|
128
|
-
fontConfig: {
|
|
129
|
-
fontFamily: 'SourceHanSansSC-Normal-Min',
|
|
130
|
-
fontBase64: window.fontBase64,
|
|
131
|
-
},
|
|
132
|
-
})
|
|
133
|
-
.then(function (blob) {
|
|
134
|
-
const url = URL.createObjectURL(blob);
|
|
135
|
-
const a = document.createElement('a');
|
|
136
|
-
a.href = url;
|
|
137
|
-
a.download = 'example.pdf';
|
|
138
|
-
document.body.appendChild(a);
|
|
139
|
-
a.click();
|
|
140
|
-
})
|
|
141
|
-
.catch(function (err) {
|
|
142
|
-
console.log(err, 'err');
|
|
143
|
-
});
|
|
144
|
-
````
|
|
243
|
+
但是,由于 foreignObject 元素的渲染依赖于浏览器的实现,因此在不同的浏览器中可能会有不同的表现。
|
|
244
|
+
所以,在使用 foreignObjectRendering 时,需要注意以下事项:
|
|
145
245
|
|
|
146
|
-
|
|
246
|
+
1. foreignObject 元素的渲染依赖于浏览器的实现,因此在不同的浏览器中可能会有不同的表现。
|
|
247
|
+
2. IE 浏览器完全不支持,推荐在 chrome 和 firefox,edge 中使用。
|
|
248
|
+
3. 生成的图片会导致 pdf 文件体积变大。
|
|
249
|
+
|
|
250
|
+
示例
|
|
251
|
+
|
|
252
|
+
```html
|
|
253
|
+
<div style="width: 100px;height: 100px;" foreignObjectRendering>
|
|
254
|
+
<div
|
|
255
|
+
style="width: 50px;height: 50px;border: 1px solid #000;box-shadow: 2px 2px 5px rgba(0,0,0,0.3);background: linear-gradient(45deg, #ff6b6b, #4ecdc4);"
|
|
256
|
+
>
|
|
257
|
+
这是一个div元素
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
```
|
|
147
261
|
|
|
148
|
-
|
|
262
|
+
### 浏览器兼容性
|
|
263
|
+
|
|
264
|
+
该库应该可以在以下浏览器上正常工作(需要 `Promise` polyfill):
|
|
265
|
+
|
|
266
|
+
- Firefox 3.5+
|
|
267
|
+
- Google Chrome
|
|
268
|
+
- Opera 12+
|
|
269
|
+
- IE9+
|
|
270
|
+
- Safari 6+
|
|
271
|
+
|
|
272
|
+
### 构建
|
|
149
273
|
|
|
150
274
|
克隆 git 仓库:
|
|
151
275
|
|
|
@@ -162,4 +286,3 @@ dompdf(document.querySelector("#capture"), {
|
|
|
162
286
|
## Star History
|
|
163
287
|
|
|
164
288
|
[](https://www.star-history.com/#lmn1919/dompdf.js&Date)
|
|
165
|
-
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { Context } from '../core/context';
|
|
1
2
|
import { CSSParsedDeclaration } from '../css/index';
|
|
2
|
-
import { TextContainer } from './text-container';
|
|
3
3
|
import { Bounds } from '../css/layout/bounds';
|
|
4
|
-
import {
|
|
4
|
+
import { TextContainer } from './text-container';
|
|
5
5
|
export declare const enum FLAGS {
|
|
6
6
|
CREATES_STACKING_CONTEXT = 2,
|
|
7
7
|
CREATES_REAL_STACKING_CONTEXT = 4,
|
|
@@ -17,5 +17,7 @@ export declare class ElementContainer {
|
|
|
17
17
|
flags: number;
|
|
18
18
|
foreignobjectrendering: boolean;
|
|
19
19
|
parentforeignobjectrendering: boolean;
|
|
20
|
+
divisionDisable: boolean;
|
|
21
|
+
offset: number;
|
|
20
22
|
constructor(context: Context, element: Element);
|
|
21
23
|
}
|