@ym-print/renderer-dom 0.0.0-stage → 0.1.0-rc.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/LICENSE +8 -0
- package/README.md +80 -2
- package/THIRD_PARTY_NOTICES.md +37 -0
- package/dependency-licenses.json +228 -0
- package/dist/browser-support.d.ts +2 -0
- package/dist/image-density.d.ts +2 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +450 -0
- package/dist/pdf-assets/cmaps/78-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Add-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Add-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/dist/pdf-assets/cmaps/B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/B5pc-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/B5pc-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS1-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS1-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS2-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/CNS2-V.bcmap +3 -0
- package/dist/pdf-assets/cmaps/ETHK-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/ETHK-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/ETen-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/ETen-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/ETenms-B5-H.bcmap +3 -0
- package/dist/pdf-assets/cmaps/ETenms-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Ext-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Ext-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GB-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GB-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GB-H.bcmap +4 -0
- package/dist/pdf-assets/cmaps/GB-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBK-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBK-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBK2K-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBK2K-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBT-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBT-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBT-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBT-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKdla-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKdla-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKm314-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKm314-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKm471-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKm471-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKscs-B5-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/HKscs-B5-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Hankaku.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Hiragana.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-Johab-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-Johab-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Katakana.bcmap +0 -0
- package/dist/pdf-assets/cmaps/LICENSE +36 -0
- package/dist/pdf-assets/cmaps/NWP-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/NWP-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/RKSJ-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/RKSJ-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/Roman.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/dist/pdf-assets/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/V.bcmap +0 -0
- package/dist/pdf-assets/cmaps/WP-Symbol.bcmap +0 -0
- package/dist/pdf-assets/iccs/CGATS001Compat-v2-micro.icc +0 -0
- package/dist/pdf-assets/iccs/LICENSE +116 -0
- package/dist/pdf-assets/pdf.worker.min.mjs +28 -0
- package/dist/pdf-assets/standard_fonts/FoxitDingbats.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitFixed.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitFixedBold.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitFixedItalic.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitSerif.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitSerifBold.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitSerifItalic.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/FoxitSymbol.pfb +0 -0
- package/dist/pdf-assets/standard_fonts/LICENSE_FOXIT +27 -0
- package/dist/pdf-assets/standard_fonts/LICENSE_LIBERATION +363 -0
- package/dist/pdf-assets/standard_fonts/LiberationSans-Bold.ttf +0 -0
- package/dist/pdf-assets/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/dist/pdf-assets/standard_fonts/LiberationSans-Italic.ttf +0 -0
- package/dist/pdf-assets/standard_fonts/LiberationSans-Regular.ttf +0 -0
- package/dist/pdf-assets/wasm/LICENSE_JBIG2 +196 -0
- package/dist/pdf-assets/wasm/LICENSE_OPENJPEG +39 -0
- package/dist/pdf-assets/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/dist/pdf-assets/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
- package/dist/pdf-assets/wasm/LICENSE_PDFJS_QCMS +19 -0
- package/dist/pdf-assets/wasm/LICENSE_QCMS +21 -0
- package/dist/pdf-assets/wasm/jbig2.wasm +0 -0
- package/dist/pdf-assets/wasm/jbig2_nowasm_fallback.js +15 -0
- package/dist/pdf-assets/wasm/openjpeg.wasm +0 -0
- package/dist/pdf-assets/wasm/openjpeg_nowasm_fallback.js +17 -0
- package/dist/pdf-assets/wasm/qcms_bg.wasm +0 -0
- package/dist/pdf-assets/wasm/quickjs-eval.js +16 -0
- package/dist/pdf-assets/wasm/quickjs-eval.wasm +0 -0
- package/dist/pdf-import-bNngi03w.js +16337 -0
- package/dist/pdf-import.d.ts +17 -0
- package/dist/raster.d.ts +48 -0
- package/dist/system-font.d.ts +32 -0
- package/dist/vite-assets.d.ts +3 -0
- package/dist/vite.js +39 -0
- package/package.json +52 -4
- package/third-party-licenses/@oxc-project__types@0.155.0/LICENSE +22 -0
- package/third-party-licenses/@rolldown__pluginutils@1.0.1/LICENSE +21 -0
- package/third-party-licenses/detect-libc@2.1.2/LICENSE +201 -0
- package/third-party-licenses/fdir@6.5.0/LICENSE +7 -0
- package/third-party-licenses/lightningcss@1.33.0/LICENSE +373 -0
- package/third-party-licenses/nanoid@3.3.20/LICENSE +20 -0
- package/third-party-licenses/pdfjs-dist@6.4.299/LICENSE +177 -0
- package/third-party-licenses/picocolors@1.1.1/LICENSE +15 -0
- package/third-party-licenses/picomatch@4.0.7/LICENSE +21 -0
- package/third-party-licenses/postcss@8.5.32/LICENSE +20 -0
- package/third-party-licenses/rolldown@1.2.15/LICENSE +25 -0
- package/third-party-licenses/source-map-js@1.2.2/LICENSE +28 -0
- package/third-party-licenses/tinyglobby@0.2.17/LICENSE +21 -0
- package/third-party-licenses/vite@8.3.5/LICENSE.md +2084 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
UNLICENSED
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 YmPrintUnit contributors. All rights reserved.
|
|
4
|
+
|
|
5
|
+
No open-source license is granted for the original YmPrintUnit code.
|
|
6
|
+
|
|
7
|
+
Third-party components retain their own licenses. See THIRD_PARTY_NOTICES.md
|
|
8
|
+
and dependency-licenses.json; this notice does not change those licenses.
|
package/README.md
CHANGED
|
@@ -1,3 +1,81 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ym-print/renderer-dom
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
YmPrintUnit 的浏览器渲染模块,提供系统字体测量、SVG 页面、PNG/JPEG、超大图片分条、浏览器打印和本地 PDF 页面导入。
|
|
4
|
+
|
|
5
|
+
## npm 安装
|
|
6
|
+
|
|
7
|
+
首次 npm 发布完成后安装预发布版:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
pnpm add @ym-print/renderer-dom@next
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
正式版发布后将 `@next` 改为 `@latest`。原始代码保持 `UNLICENSED`,详见随包附带的 `LICENSE`;第三方许可见 `THIRD_PARTY_NOTICES.md`。
|
|
14
|
+
|
|
15
|
+
## 使用环境
|
|
16
|
+
|
|
17
|
+
在桌面 Chrome / Edge 145 及以上的 Web 页面中使用,并以 HTTPS 或 localhost 部署。页面文字通过系统 `font-family` 渲染。
|
|
18
|
+
|
|
19
|
+
## 字体测量
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import {BrowserFont} from '@ym-print/renderer-dom';
|
|
23
|
+
|
|
24
|
+
const font = new BrowserFont('"Microsoft YaHei", "PingFang SC", sans-serif');
|
|
25
|
+
const widthUm = font.measure('采购订单', 12000);
|
|
26
|
+
font.clear();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`BrowserFont` 可传入 `@ym-print/core` 的 `layoutTemplate()`。复用测量器时,在所属业务流程结束后调用 `clear()` 释放测量缓存。
|
|
30
|
+
|
|
31
|
+
## 渲染页面
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import {createPageElement} from '@ym-print/renderer-dom';
|
|
35
|
+
import type {LayoutDocument} from '@ym-print/core';
|
|
36
|
+
|
|
37
|
+
export function showPages(container: HTMLElement, layout: LayoutDocument) {
|
|
38
|
+
container.replaceChildren(...layout.pages.map(page =>
|
|
39
|
+
createPageElement(page, container.ownerDocument, layout.font.family),
|
|
40
|
+
));
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
页面尺寸使用毫米,内部绘制使用 SVG。`LayoutDocument` 由排版内核或独立打印 SDK 生成。
|
|
45
|
+
|
|
46
|
+
## 浏览器打印
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import {preparePrintFrame} from '@ym-print/renderer-dom';
|
|
50
|
+
import type {LayoutDocument} from '@ym-print/core';
|
|
51
|
+
|
|
52
|
+
export async function printPages(layout: LayoutDocument, signal?: AbortSignal) {
|
|
53
|
+
const session = await preparePrintFrame(layout, undefined, {signal});
|
|
54
|
+
try {
|
|
55
|
+
session.print();
|
|
56
|
+
return session;
|
|
57
|
+
} catch (error) {
|
|
58
|
+
session.dispose();
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
打印内容在独立 iframe 中生成。`afterprint` 自动清理会话;业务流程提前结束时调用 `session.dispose()`,或通过传入的 `AbortSignal` 取消。
|
|
65
|
+
|
|
66
|
+
## 图片与 PDF 页面
|
|
67
|
+
|
|
68
|
+
`exportPagePng()`、`exportPageJpeg()` 输出单页图片,`exportPageImageStrips()` 按条带输出超大页面。`importPdfPages()` 将本地 PDF 页转换为图片元素。
|
|
69
|
+
|
|
70
|
+
使用 Vite 并启用 PDF 页面导入时,配置本地资源插件:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import {defineConfig} from 'vite';
|
|
74
|
+
import {ymPrintPdfAssets} from '@ym-print/renderer-dom/vite';
|
|
75
|
+
|
|
76
|
+
export default defineConfig({plugins:[ymPrintPdfAssets()]});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
插件提供开发服务器资源响应,并在生产构建时复制 PDF 辅助资源。其他构建工具可将本包 `dist/pdf-assets/` 复制到站点的 `/ym-print-assets/`。
|
|
80
|
+
|
|
81
|
+
子目录部署时,向 `importPdfPages()` 的 `assetBaseUrl` 传入完整资源目录 URL,并保留结尾 `/`。离线使用时,由宿主应用部署和缓存这些资源。
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
@ym-print/renderer-dom 0.1.0-rc.1 — original code: UNLICENSED.
|
|
4
|
+
|
|
5
|
+
Bundled code and external packages keep their original licenses. Optional peers are loaded through their documented opt-in entry.
|
|
6
|
+
|
|
7
|
+
| Package | License | Delivery | Notices |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| @oxc-project/types@0.155.0 | MIT | external | [LICENSE](third-party-licenses/@oxc-project__types@0.155.0/LICENSE) |
|
|
10
|
+
| @rolldown/pluginutils@1.0.1 | MIT | external | [LICENSE](third-party-licenses/@rolldown__pluginutils@1.0.1/LICENSE) |
|
|
11
|
+
| detect-libc@2.1.2 | Apache-2.0 | external | [LICENSE](third-party-licenses/detect-libc@2.1.2/LICENSE) |
|
|
12
|
+
| fdir@6.5.0 | MIT | external | [LICENSE](third-party-licenses/fdir@6.5.0/LICENSE) |
|
|
13
|
+
| lightningcss@1.33.0 | MPL-2.0 | external | [LICENSE](third-party-licenses/lightningcss@1.33.0/LICENSE) |
|
|
14
|
+
| nanoid@3.3.20 | MIT | external | [LICENSE](third-party-licenses/nanoid@3.3.20/LICENSE) |
|
|
15
|
+
| pdfjs-dist@6.4.299 | Apache-2.0 | bundled | [LICENSE](third-party-licenses/pdfjs-dist@6.4.299/LICENSE) |
|
|
16
|
+
| picocolors@1.1.1 | ISC | external | [LICENSE](third-party-licenses/picocolors@1.1.1/LICENSE) |
|
|
17
|
+
| picomatch@4.0.7 | MIT | external | [LICENSE](third-party-licenses/picomatch@4.0.7/LICENSE) |
|
|
18
|
+
| postcss@8.5.32 | MIT | external | [LICENSE](third-party-licenses/postcss@8.5.32/LICENSE) |
|
|
19
|
+
| rolldown@1.2.15 | MIT | external | [LICENSE](third-party-licenses/rolldown@1.2.15/LICENSE) |
|
|
20
|
+
| source-map-js@1.2.2 | BSD-3-Clause | external | [LICENSE](third-party-licenses/source-map-js@1.2.2/LICENSE) |
|
|
21
|
+
| tinyglobby@0.2.17 | MIT | external | [LICENSE](third-party-licenses/tinyglobby@0.2.17/LICENSE) |
|
|
22
|
+
| vite@8.3.5 | MIT | optional-peer | [LICENSE.md](third-party-licenses/vite@8.3.5/LICENSE.md) |
|
|
23
|
+
|
|
24
|
+
## PDF import resource licenses
|
|
25
|
+
|
|
26
|
+
These optional PDF import assets retain their upstream terms, including the Liberation GPLv2 font exceptions. They are not covered by the original-code license. See each upstream notice for the applicable terms.
|
|
27
|
+
|
|
28
|
+
- BSD-3-Clause (Adobe CMaps): [original notice](dist/pdf-assets/cmaps/LICENSE)
|
|
29
|
+
- BSD-3-Clause (PDFium/Foxit fonts): [original notice](dist/pdf-assets/standard_fonts/LICENSE_FOXIT)
|
|
30
|
+
- GPL-2.0 with Liberation font exceptions; exact terms in upstream file: [original notice](dist/pdf-assets/standard_fonts/LICENSE_LIBERATION)
|
|
31
|
+
- BSD-3-Clause AND Apache-2.0 (upstream combined notice): [original notice](dist/pdf-assets/wasm/LICENSE_JBIG2)
|
|
32
|
+
- Apache-2.0: [original notice](dist/pdf-assets/wasm/LICENSE_PDFJS_JBIG2)
|
|
33
|
+
- BSD-2-Clause: [original notice](dist/pdf-assets/wasm/LICENSE_OPENJPEG)
|
|
34
|
+
- BSD-2-Clause: [original notice](dist/pdf-assets/wasm/LICENSE_PDFJS_OPENJPEG)
|
|
35
|
+
- MIT: [original notice](dist/pdf-assets/wasm/LICENSE_QCMS)
|
|
36
|
+
- MIT: [original notice](dist/pdf-assets/wasm/LICENSE_PDFJS_QCMS)
|
|
37
|
+
- CC0-1.0: [original notice](dist/pdf-assets/iccs/LICENSE)
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
{
|
|
2
|
+
"package": "@ym-print/renderer-dom",
|
|
3
|
+
"version": "0.1.0-rc.1",
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"licenseScope": "original YmPrintUnit code only",
|
|
6
|
+
"dependencies": [
|
|
7
|
+
{
|
|
8
|
+
"name": "@oxc-project/types",
|
|
9
|
+
"version": "0.155.0",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"kind": "external",
|
|
12
|
+
"notices": [
|
|
13
|
+
{
|
|
14
|
+
"path": "third-party-licenses/@oxc-project__types@0.155.0/LICENSE",
|
|
15
|
+
"sha256": "95ced5ecf1133fbf41d409b5555c86c344f83f3b019926057ddbc07cfdcc27b3"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "@rolldown/pluginutils",
|
|
21
|
+
"version": "1.0.1",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"kind": "external",
|
|
24
|
+
"notices": [
|
|
25
|
+
{
|
|
26
|
+
"path": "third-party-licenses/@rolldown__pluginutils@1.0.1/LICENSE",
|
|
27
|
+
"sha256": "e1919b3b98b8bf6c1b99fcc60a0ed46027c97ac947432e1278446c9606f50161"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "detect-libc",
|
|
33
|
+
"version": "2.1.2",
|
|
34
|
+
"license": "Apache-2.0",
|
|
35
|
+
"kind": "external",
|
|
36
|
+
"notices": [
|
|
37
|
+
{
|
|
38
|
+
"path": "third-party-licenses/detect-libc@2.1.2/LICENSE",
|
|
39
|
+
"sha256": "b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "fdir",
|
|
45
|
+
"version": "6.5.0",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"kind": "external",
|
|
48
|
+
"notices": [
|
|
49
|
+
{
|
|
50
|
+
"path": "third-party-licenses/fdir@6.5.0/LICENSE",
|
|
51
|
+
"sha256": "9a39f2aadab11a3697edd668ff2d8ad885b649737b7ab4d3bf12b34e5ada0c86"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "lightningcss",
|
|
57
|
+
"version": "1.33.0",
|
|
58
|
+
"license": "MPL-2.0",
|
|
59
|
+
"kind": "external",
|
|
60
|
+
"notices": [
|
|
61
|
+
{
|
|
62
|
+
"path": "third-party-licenses/lightningcss@1.33.0/LICENSE",
|
|
63
|
+
"sha256": "5eba353fe5076ac3432177f8ab1cf75e3afcd0584251e37c3bfead5f447d040e"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "nanoid",
|
|
69
|
+
"version": "3.3.20",
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"kind": "external",
|
|
72
|
+
"notices": [
|
|
73
|
+
{
|
|
74
|
+
"path": "third-party-licenses/nanoid@3.3.20/LICENSE",
|
|
75
|
+
"sha256": "da4db1480d9beea3483a2eda5c53b22238d0827d57da162b48f122e04d2d9987"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "pdfjs-dist",
|
|
81
|
+
"version": "6.4.299",
|
|
82
|
+
"license": "Apache-2.0",
|
|
83
|
+
"kind": "bundled",
|
|
84
|
+
"notices": [
|
|
85
|
+
{
|
|
86
|
+
"path": "third-party-licenses/pdfjs-dist@6.4.299/LICENSE",
|
|
87
|
+
"sha256": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "picocolors",
|
|
93
|
+
"version": "1.1.1",
|
|
94
|
+
"license": "ISC",
|
|
95
|
+
"kind": "external",
|
|
96
|
+
"notices": [
|
|
97
|
+
{
|
|
98
|
+
"path": "third-party-licenses/picocolors@1.1.1/LICENSE",
|
|
99
|
+
"sha256": "6582629e2979466878f6014313dcc2f3756c9616148682227ce3063dde310750"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "picomatch",
|
|
105
|
+
"version": "4.0.7",
|
|
106
|
+
"license": "MIT",
|
|
107
|
+
"kind": "external",
|
|
108
|
+
"notices": [
|
|
109
|
+
{
|
|
110
|
+
"path": "third-party-licenses/picomatch@4.0.7/LICENSE",
|
|
111
|
+
"sha256": "d0cd141b0c322fded5dfad1d4645bb2fedfc05b7321fe1009469638190d59ef9"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "postcss",
|
|
117
|
+
"version": "8.5.32",
|
|
118
|
+
"license": "MIT",
|
|
119
|
+
"kind": "external",
|
|
120
|
+
"notices": [
|
|
121
|
+
{
|
|
122
|
+
"path": "third-party-licenses/postcss@8.5.32/LICENSE",
|
|
123
|
+
"sha256": "5be1f3465bba68a626777f984878814aaf35e7ef8e9fd314d469bcf887050fb8"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "rolldown",
|
|
129
|
+
"version": "1.2.15",
|
|
130
|
+
"license": "MIT",
|
|
131
|
+
"kind": "external",
|
|
132
|
+
"notices": [
|
|
133
|
+
{
|
|
134
|
+
"path": "third-party-licenses/rolldown@1.2.15/LICENSE",
|
|
135
|
+
"sha256": "23ecfff35a5a2e80d92142f75228912c3b1abc4b5a8337a821ff4397e2f9f734"
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "source-map-js",
|
|
141
|
+
"version": "1.2.2",
|
|
142
|
+
"license": "BSD-3-Clause",
|
|
143
|
+
"kind": "external",
|
|
144
|
+
"notices": [
|
|
145
|
+
{
|
|
146
|
+
"path": "third-party-licenses/source-map-js@1.2.2/LICENSE",
|
|
147
|
+
"sha256": "6cb0631f71c7749763fd3dd1d5bee52dd1070ec17f2edc1710079ad070bd2fbd"
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "tinyglobby",
|
|
153
|
+
"version": "0.2.17",
|
|
154
|
+
"license": "MIT",
|
|
155
|
+
"kind": "external",
|
|
156
|
+
"notices": [
|
|
157
|
+
{
|
|
158
|
+
"path": "third-party-licenses/tinyglobby@0.2.17/LICENSE",
|
|
159
|
+
"sha256": "22c68811e174cbbfb3813d4135918df4f540959c14d872e601d9abe83d3cde8f"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "vite",
|
|
165
|
+
"version": "8.3.5",
|
|
166
|
+
"license": "MIT",
|
|
167
|
+
"kind": "optional-peer",
|
|
168
|
+
"notices": [
|
|
169
|
+
{
|
|
170
|
+
"path": "third-party-licenses/vite@8.3.5/LICENSE.md",
|
|
171
|
+
"sha256": "a22152baa1aef74402443008e767e7c689a524c0909d19b0431d97f5ab066a13"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"resourceLicenses": [
|
|
177
|
+
{
|
|
178
|
+
"path": "dist/pdf-assets/cmaps/LICENSE",
|
|
179
|
+
"license": "BSD-3-Clause (Adobe CMaps)",
|
|
180
|
+
"sha256": "aa92ab5a472974865a96fd4a4e9c13bb41bf6fe1b309cb6b8da48bc9e19839a2"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"path": "dist/pdf-assets/standard_fonts/LICENSE_FOXIT",
|
|
184
|
+
"license": "BSD-3-Clause (PDFium/Foxit fonts)",
|
|
185
|
+
"sha256": "b578cdd2345840ada550bd12519533812320d5f1d21cf4c1c7e1b1b0a31c98b7"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"path": "dist/pdf-assets/standard_fonts/LICENSE_LIBERATION",
|
|
189
|
+
"license": "GPL-2.0 with Liberation font exceptions; exact terms in upstream file",
|
|
190
|
+
"sha256": "d2c4d5b3e115a519cb58eb691aa64538397e2611f9ebe801392cf9667997e7dc"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"path": "dist/pdf-assets/wasm/LICENSE_JBIG2",
|
|
194
|
+
"license": "BSD-3-Clause AND Apache-2.0 (upstream combined notice)",
|
|
195
|
+
"sha256": "9e66b7f1b934a28b37f3bc4dac97915de1674271e79a0a88182a18ed9731b4d1"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"path": "dist/pdf-assets/wasm/LICENSE_PDFJS_JBIG2",
|
|
199
|
+
"license": "Apache-2.0",
|
|
200
|
+
"sha256": "aad3cce09842e00e9e11ad5e8fef8cc02fbc3a3768fe2f007443b9cee37aaee5"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"path": "dist/pdf-assets/wasm/LICENSE_OPENJPEG",
|
|
204
|
+
"license": "BSD-2-Clause",
|
|
205
|
+
"sha256": "a6af136f3e15038a666b61f376612a07d9a4e48cb7c01adbf3e33b3f14ab49b6"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"path": "dist/pdf-assets/wasm/LICENSE_PDFJS_OPENJPEG",
|
|
209
|
+
"license": "BSD-2-Clause",
|
|
210
|
+
"sha256": "717fc62da03292dbb4dd0c8280bd4ce7bb8550dcf31d772bc93455fb50313425"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"path": "dist/pdf-assets/wasm/LICENSE_QCMS",
|
|
214
|
+
"license": "MIT",
|
|
215
|
+
"sha256": "36d847ae882f6574ebc72f56a4f354e4f104fde4a584373496482e97d52d31bc"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"path": "dist/pdf-assets/wasm/LICENSE_PDFJS_QCMS",
|
|
219
|
+
"license": "MIT",
|
|
220
|
+
"sha256": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"path": "dist/pdf-assets/iccs/LICENSE",
|
|
224
|
+
"license": "CC0-1.0",
|
|
225
|
+
"sha256": "286e4fd7b447330b2c88e23890e3cd0a9d38cb398d4a59cb247f578ccbda3213"
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LayoutDocument, LayoutPage } from '@ym-print/core';
|
|
2
|
+
export { BrowserFont } from './system-font.js';
|
|
3
|
+
export declare const FONT_FAMILY = "YmPrintNoto";
|
|
4
|
+
export declare function createPageElement(page: LayoutPage, doc?: Document, fontFamily?: string): HTMLElement;
|
|
5
|
+
export declare function renderLayout(container: HTMLElement, layout: LayoutDocument): void;
|
|
6
|
+
export declare function fontFaceCss(url: string): string;
|
|
7
|
+
export declare function createPrintHtml(layout: LayoutDocument, embeddedFontDataUrl?: string): string;
|
|
8
|
+
export declare function fontDataUrl(bytes: Uint8Array): string;
|
|
9
|
+
export interface PrintFrameSession {
|
|
10
|
+
readonly frame: HTMLIFrameElement;
|
|
11
|
+
readonly html: string;
|
|
12
|
+
isDisposed: () => boolean;
|
|
13
|
+
print: () => void;
|
|
14
|
+
dispose: () => void;
|
|
15
|
+
/** Returns an unsubscribe function. Subscribers are released on dispose. */
|
|
16
|
+
onAfterPrint: (callback: () => void) => () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface PrintFrameOptions {
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
timeoutMs?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function preparePrintFrame(layout: LayoutDocument, bytes?: Uint8Array, options?: PrintFrameOptions): Promise<PrintFrameSession>;
|
|
23
|
+
export * from './raster.js';
|
|
24
|
+
export type { ImportedPdfPage, PdfImportOptions } from './pdf-import.js';
|
|
25
|
+
export declare function importPdfPages(bytes: Uint8Array, options?: import('./pdf-import.js').PdfImportOptions): Promise<import("./pdf-import.js").ImportedPdfPage[]>;
|