@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.
Files changed (230) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +80 -2
  3. package/THIRD_PARTY_NOTICES.md +37 -0
  4. package/dependency-licenses.json +228 -0
  5. package/dist/browser-support.d.ts +2 -0
  6. package/dist/image-density.d.ts +2 -0
  7. package/dist/index.d.ts +25 -0
  8. package/dist/index.js +450 -0
  9. package/dist/pdf-assets/cmaps/78-EUC-H.bcmap +0 -0
  10. package/dist/pdf-assets/cmaps/78-EUC-V.bcmap +0 -0
  11. package/dist/pdf-assets/cmaps/78-H.bcmap +0 -0
  12. package/dist/pdf-assets/cmaps/78-RKSJ-H.bcmap +0 -0
  13. package/dist/pdf-assets/cmaps/78-RKSJ-V.bcmap +0 -0
  14. package/dist/pdf-assets/cmaps/78-V.bcmap +0 -0
  15. package/dist/pdf-assets/cmaps/78ms-RKSJ-H.bcmap +0 -0
  16. package/dist/pdf-assets/cmaps/78ms-RKSJ-V.bcmap +0 -0
  17. package/dist/pdf-assets/cmaps/83pv-RKSJ-H.bcmap +0 -0
  18. package/dist/pdf-assets/cmaps/90ms-RKSJ-H.bcmap +0 -0
  19. package/dist/pdf-assets/cmaps/90ms-RKSJ-V.bcmap +0 -0
  20. package/dist/pdf-assets/cmaps/90msp-RKSJ-H.bcmap +0 -0
  21. package/dist/pdf-assets/cmaps/90msp-RKSJ-V.bcmap +0 -0
  22. package/dist/pdf-assets/cmaps/90pv-RKSJ-H.bcmap +0 -0
  23. package/dist/pdf-assets/cmaps/90pv-RKSJ-V.bcmap +0 -0
  24. package/dist/pdf-assets/cmaps/Add-H.bcmap +0 -0
  25. package/dist/pdf-assets/cmaps/Add-RKSJ-H.bcmap +0 -0
  26. package/dist/pdf-assets/cmaps/Add-RKSJ-V.bcmap +0 -0
  27. package/dist/pdf-assets/cmaps/Add-V.bcmap +0 -0
  28. package/dist/pdf-assets/cmaps/Adobe-CNS1-0.bcmap +0 -0
  29. package/dist/pdf-assets/cmaps/Adobe-CNS1-1.bcmap +0 -0
  30. package/dist/pdf-assets/cmaps/Adobe-CNS1-2.bcmap +0 -0
  31. package/dist/pdf-assets/cmaps/Adobe-CNS1-3.bcmap +0 -0
  32. package/dist/pdf-assets/cmaps/Adobe-CNS1-4.bcmap +0 -0
  33. package/dist/pdf-assets/cmaps/Adobe-CNS1-5.bcmap +0 -0
  34. package/dist/pdf-assets/cmaps/Adobe-CNS1-6.bcmap +0 -0
  35. package/dist/pdf-assets/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  36. package/dist/pdf-assets/cmaps/Adobe-GB1-0.bcmap +0 -0
  37. package/dist/pdf-assets/cmaps/Adobe-GB1-1.bcmap +0 -0
  38. package/dist/pdf-assets/cmaps/Adobe-GB1-2.bcmap +0 -0
  39. package/dist/pdf-assets/cmaps/Adobe-GB1-3.bcmap +0 -0
  40. package/dist/pdf-assets/cmaps/Adobe-GB1-4.bcmap +0 -0
  41. package/dist/pdf-assets/cmaps/Adobe-GB1-5.bcmap +0 -0
  42. package/dist/pdf-assets/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  43. package/dist/pdf-assets/cmaps/Adobe-Japan1-0.bcmap +0 -0
  44. package/dist/pdf-assets/cmaps/Adobe-Japan1-1.bcmap +0 -0
  45. package/dist/pdf-assets/cmaps/Adobe-Japan1-2.bcmap +0 -0
  46. package/dist/pdf-assets/cmaps/Adobe-Japan1-3.bcmap +0 -0
  47. package/dist/pdf-assets/cmaps/Adobe-Japan1-4.bcmap +0 -0
  48. package/dist/pdf-assets/cmaps/Adobe-Japan1-5.bcmap +0 -0
  49. package/dist/pdf-assets/cmaps/Adobe-Japan1-6.bcmap +0 -0
  50. package/dist/pdf-assets/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  51. package/dist/pdf-assets/cmaps/Adobe-Korea1-0.bcmap +0 -0
  52. package/dist/pdf-assets/cmaps/Adobe-Korea1-1.bcmap +0 -0
  53. package/dist/pdf-assets/cmaps/Adobe-Korea1-2.bcmap +0 -0
  54. package/dist/pdf-assets/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  55. package/dist/pdf-assets/cmaps/B5-H.bcmap +0 -0
  56. package/dist/pdf-assets/cmaps/B5-V.bcmap +0 -0
  57. package/dist/pdf-assets/cmaps/B5pc-H.bcmap +0 -0
  58. package/dist/pdf-assets/cmaps/B5pc-V.bcmap +0 -0
  59. package/dist/pdf-assets/cmaps/CNS-EUC-H.bcmap +0 -0
  60. package/dist/pdf-assets/cmaps/CNS-EUC-V.bcmap +0 -0
  61. package/dist/pdf-assets/cmaps/CNS1-H.bcmap +0 -0
  62. package/dist/pdf-assets/cmaps/CNS1-V.bcmap +0 -0
  63. package/dist/pdf-assets/cmaps/CNS2-H.bcmap +0 -0
  64. package/dist/pdf-assets/cmaps/CNS2-V.bcmap +3 -0
  65. package/dist/pdf-assets/cmaps/ETHK-B5-H.bcmap +0 -0
  66. package/dist/pdf-assets/cmaps/ETHK-B5-V.bcmap +0 -0
  67. package/dist/pdf-assets/cmaps/ETen-B5-H.bcmap +0 -0
  68. package/dist/pdf-assets/cmaps/ETen-B5-V.bcmap +0 -0
  69. package/dist/pdf-assets/cmaps/ETenms-B5-H.bcmap +3 -0
  70. package/dist/pdf-assets/cmaps/ETenms-B5-V.bcmap +0 -0
  71. package/dist/pdf-assets/cmaps/EUC-H.bcmap +0 -0
  72. package/dist/pdf-assets/cmaps/EUC-V.bcmap +0 -0
  73. package/dist/pdf-assets/cmaps/Ext-H.bcmap +0 -0
  74. package/dist/pdf-assets/cmaps/Ext-RKSJ-H.bcmap +0 -0
  75. package/dist/pdf-assets/cmaps/Ext-RKSJ-V.bcmap +0 -0
  76. package/dist/pdf-assets/cmaps/Ext-V.bcmap +0 -0
  77. package/dist/pdf-assets/cmaps/GB-EUC-H.bcmap +0 -0
  78. package/dist/pdf-assets/cmaps/GB-EUC-V.bcmap +0 -0
  79. package/dist/pdf-assets/cmaps/GB-H.bcmap +4 -0
  80. package/dist/pdf-assets/cmaps/GB-V.bcmap +0 -0
  81. package/dist/pdf-assets/cmaps/GBK-EUC-H.bcmap +0 -0
  82. package/dist/pdf-assets/cmaps/GBK-EUC-V.bcmap +0 -0
  83. package/dist/pdf-assets/cmaps/GBK2K-H.bcmap +0 -0
  84. package/dist/pdf-assets/cmaps/GBK2K-V.bcmap +0 -0
  85. package/dist/pdf-assets/cmaps/GBKp-EUC-H.bcmap +0 -0
  86. package/dist/pdf-assets/cmaps/GBKp-EUC-V.bcmap +0 -0
  87. package/dist/pdf-assets/cmaps/GBT-EUC-H.bcmap +0 -0
  88. package/dist/pdf-assets/cmaps/GBT-EUC-V.bcmap +0 -0
  89. package/dist/pdf-assets/cmaps/GBT-H.bcmap +0 -0
  90. package/dist/pdf-assets/cmaps/GBT-V.bcmap +0 -0
  91. package/dist/pdf-assets/cmaps/GBTpc-EUC-H.bcmap +0 -0
  92. package/dist/pdf-assets/cmaps/GBTpc-EUC-V.bcmap +0 -0
  93. package/dist/pdf-assets/cmaps/GBpc-EUC-H.bcmap +0 -0
  94. package/dist/pdf-assets/cmaps/GBpc-EUC-V.bcmap +0 -0
  95. package/dist/pdf-assets/cmaps/H.bcmap +0 -0
  96. package/dist/pdf-assets/cmaps/HKdla-B5-H.bcmap +0 -0
  97. package/dist/pdf-assets/cmaps/HKdla-B5-V.bcmap +0 -0
  98. package/dist/pdf-assets/cmaps/HKdlb-B5-H.bcmap +0 -0
  99. package/dist/pdf-assets/cmaps/HKdlb-B5-V.bcmap +0 -0
  100. package/dist/pdf-assets/cmaps/HKgccs-B5-H.bcmap +0 -0
  101. package/dist/pdf-assets/cmaps/HKgccs-B5-V.bcmap +0 -0
  102. package/dist/pdf-assets/cmaps/HKm314-B5-H.bcmap +0 -0
  103. package/dist/pdf-assets/cmaps/HKm314-B5-V.bcmap +0 -0
  104. package/dist/pdf-assets/cmaps/HKm471-B5-H.bcmap +0 -0
  105. package/dist/pdf-assets/cmaps/HKm471-B5-V.bcmap +0 -0
  106. package/dist/pdf-assets/cmaps/HKscs-B5-H.bcmap +0 -0
  107. package/dist/pdf-assets/cmaps/HKscs-B5-V.bcmap +0 -0
  108. package/dist/pdf-assets/cmaps/Hankaku.bcmap +0 -0
  109. package/dist/pdf-assets/cmaps/Hiragana.bcmap +0 -0
  110. package/dist/pdf-assets/cmaps/KSC-EUC-H.bcmap +0 -0
  111. package/dist/pdf-assets/cmaps/KSC-EUC-V.bcmap +0 -0
  112. package/dist/pdf-assets/cmaps/KSC-H.bcmap +0 -0
  113. package/dist/pdf-assets/cmaps/KSC-Johab-H.bcmap +0 -0
  114. package/dist/pdf-assets/cmaps/KSC-Johab-V.bcmap +0 -0
  115. package/dist/pdf-assets/cmaps/KSC-V.bcmap +0 -0
  116. package/dist/pdf-assets/cmaps/KSCms-UHC-H.bcmap +0 -0
  117. package/dist/pdf-assets/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  118. package/dist/pdf-assets/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  119. package/dist/pdf-assets/cmaps/KSCms-UHC-V.bcmap +0 -0
  120. package/dist/pdf-assets/cmaps/KSCpc-EUC-H.bcmap +0 -0
  121. package/dist/pdf-assets/cmaps/KSCpc-EUC-V.bcmap +0 -0
  122. package/dist/pdf-assets/cmaps/Katakana.bcmap +0 -0
  123. package/dist/pdf-assets/cmaps/LICENSE +36 -0
  124. package/dist/pdf-assets/cmaps/NWP-H.bcmap +0 -0
  125. package/dist/pdf-assets/cmaps/NWP-V.bcmap +0 -0
  126. package/dist/pdf-assets/cmaps/RKSJ-H.bcmap +0 -0
  127. package/dist/pdf-assets/cmaps/RKSJ-V.bcmap +0 -0
  128. package/dist/pdf-assets/cmaps/Roman.bcmap +0 -0
  129. package/dist/pdf-assets/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  130. package/dist/pdf-assets/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  131. package/dist/pdf-assets/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  132. package/dist/pdf-assets/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  133. package/dist/pdf-assets/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  134. package/dist/pdf-assets/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  135. package/dist/pdf-assets/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  136. package/dist/pdf-assets/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  137. package/dist/pdf-assets/cmaps/UniGB-UCS2-H.bcmap +0 -0
  138. package/dist/pdf-assets/cmaps/UniGB-UCS2-V.bcmap +0 -0
  139. package/dist/pdf-assets/cmaps/UniGB-UTF16-H.bcmap +0 -0
  140. package/dist/pdf-assets/cmaps/UniGB-UTF16-V.bcmap +0 -0
  141. package/dist/pdf-assets/cmaps/UniGB-UTF32-H.bcmap +0 -0
  142. package/dist/pdf-assets/cmaps/UniGB-UTF32-V.bcmap +0 -0
  143. package/dist/pdf-assets/cmaps/UniGB-UTF8-H.bcmap +0 -0
  144. package/dist/pdf-assets/cmaps/UniGB-UTF8-V.bcmap +0 -0
  145. package/dist/pdf-assets/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  146. package/dist/pdf-assets/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  147. package/dist/pdf-assets/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  148. package/dist/pdf-assets/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  149. package/dist/pdf-assets/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  150. package/dist/pdf-assets/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  151. package/dist/pdf-assets/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  152. package/dist/pdf-assets/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  153. package/dist/pdf-assets/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  154. package/dist/pdf-assets/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  155. package/dist/pdf-assets/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  156. package/dist/pdf-assets/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  157. package/dist/pdf-assets/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  158. package/dist/pdf-assets/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  159. package/dist/pdf-assets/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  160. package/dist/pdf-assets/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  161. package/dist/pdf-assets/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  162. package/dist/pdf-assets/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  163. package/dist/pdf-assets/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  164. package/dist/pdf-assets/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  165. package/dist/pdf-assets/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  166. package/dist/pdf-assets/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  167. package/dist/pdf-assets/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  168. package/dist/pdf-assets/cmaps/UniKS-UCS2-H.bcmap +0 -0
  169. package/dist/pdf-assets/cmaps/UniKS-UCS2-V.bcmap +0 -0
  170. package/dist/pdf-assets/cmaps/UniKS-UTF16-H.bcmap +0 -0
  171. package/dist/pdf-assets/cmaps/UniKS-UTF16-V.bcmap +0 -0
  172. package/dist/pdf-assets/cmaps/UniKS-UTF32-H.bcmap +0 -0
  173. package/dist/pdf-assets/cmaps/UniKS-UTF32-V.bcmap +0 -0
  174. package/dist/pdf-assets/cmaps/UniKS-UTF8-H.bcmap +0 -0
  175. package/dist/pdf-assets/cmaps/UniKS-UTF8-V.bcmap +0 -0
  176. package/dist/pdf-assets/cmaps/V.bcmap +0 -0
  177. package/dist/pdf-assets/cmaps/WP-Symbol.bcmap +0 -0
  178. package/dist/pdf-assets/iccs/CGATS001Compat-v2-micro.icc +0 -0
  179. package/dist/pdf-assets/iccs/LICENSE +116 -0
  180. package/dist/pdf-assets/pdf.worker.min.mjs +28 -0
  181. package/dist/pdf-assets/standard_fonts/FoxitDingbats.pfb +0 -0
  182. package/dist/pdf-assets/standard_fonts/FoxitFixed.pfb +0 -0
  183. package/dist/pdf-assets/standard_fonts/FoxitFixedBold.pfb +0 -0
  184. package/dist/pdf-assets/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  185. package/dist/pdf-assets/standard_fonts/FoxitFixedItalic.pfb +0 -0
  186. package/dist/pdf-assets/standard_fonts/FoxitSerif.pfb +0 -0
  187. package/dist/pdf-assets/standard_fonts/FoxitSerifBold.pfb +0 -0
  188. package/dist/pdf-assets/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  189. package/dist/pdf-assets/standard_fonts/FoxitSerifItalic.pfb +0 -0
  190. package/dist/pdf-assets/standard_fonts/FoxitSymbol.pfb +0 -0
  191. package/dist/pdf-assets/standard_fonts/LICENSE_FOXIT +27 -0
  192. package/dist/pdf-assets/standard_fonts/LICENSE_LIBERATION +363 -0
  193. package/dist/pdf-assets/standard_fonts/LiberationSans-Bold.ttf +0 -0
  194. package/dist/pdf-assets/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  195. package/dist/pdf-assets/standard_fonts/LiberationSans-Italic.ttf +0 -0
  196. package/dist/pdf-assets/standard_fonts/LiberationSans-Regular.ttf +0 -0
  197. package/dist/pdf-assets/wasm/LICENSE_JBIG2 +196 -0
  198. package/dist/pdf-assets/wasm/LICENSE_OPENJPEG +39 -0
  199. package/dist/pdf-assets/wasm/LICENSE_PDFJS_JBIG2 +13 -0
  200. package/dist/pdf-assets/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  201. package/dist/pdf-assets/wasm/LICENSE_PDFJS_QCMS +19 -0
  202. package/dist/pdf-assets/wasm/LICENSE_QCMS +21 -0
  203. package/dist/pdf-assets/wasm/jbig2.wasm +0 -0
  204. package/dist/pdf-assets/wasm/jbig2_nowasm_fallback.js +15 -0
  205. package/dist/pdf-assets/wasm/openjpeg.wasm +0 -0
  206. package/dist/pdf-assets/wasm/openjpeg_nowasm_fallback.js +17 -0
  207. package/dist/pdf-assets/wasm/qcms_bg.wasm +0 -0
  208. package/dist/pdf-assets/wasm/quickjs-eval.js +16 -0
  209. package/dist/pdf-assets/wasm/quickjs-eval.wasm +0 -0
  210. package/dist/pdf-import-bNngi03w.js +16337 -0
  211. package/dist/pdf-import.d.ts +17 -0
  212. package/dist/raster.d.ts +48 -0
  213. package/dist/system-font.d.ts +32 -0
  214. package/dist/vite-assets.d.ts +3 -0
  215. package/dist/vite.js +39 -0
  216. package/package.json +52 -4
  217. package/third-party-licenses/@oxc-project__types@0.155.0/LICENSE +22 -0
  218. package/third-party-licenses/@rolldown__pluginutils@1.0.1/LICENSE +21 -0
  219. package/third-party-licenses/detect-libc@2.1.2/LICENSE +201 -0
  220. package/third-party-licenses/fdir@6.5.0/LICENSE +7 -0
  221. package/third-party-licenses/lightningcss@1.33.0/LICENSE +373 -0
  222. package/third-party-licenses/nanoid@3.3.20/LICENSE +20 -0
  223. package/third-party-licenses/pdfjs-dist@6.4.299/LICENSE +177 -0
  224. package/third-party-licenses/picocolors@1.1.1/LICENSE +15 -0
  225. package/third-party-licenses/picomatch@4.0.7/LICENSE +21 -0
  226. package/third-party-licenses/postcss@8.5.32/LICENSE +20 -0
  227. package/third-party-licenses/rolldown@1.2.15/LICENSE +25 -0
  228. package/third-party-licenses/source-map-js@1.2.2/LICENSE +28 -0
  229. package/third-party-licenses/tinyglobby@0.2.17/LICENSE +21 -0
  230. 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
- # Temporary Holding Version
1
+ # @ym-print/renderer-dom
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
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
+ }
@@ -0,0 +1,2 @@
1
+ /** PDF.js modern build and its worker share this requirement; never patch host prototypes. */
2
+ export declare function assertPdfImportSupport(): void;
@@ -0,0 +1,2 @@
1
+ /** Canvas encodes 96 DPI by default. Store the requested density without re-encoding pixels. */
2
+ export declare function withImageDensity(blob: Blob, dpi: number): Promise<Blob>;
@@ -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[]>;