# @ai-matrx/print 中文文档

规范地址：https://npmcn.com/package/%40ai-matrx/print/

版本：0\.12\.54
npm 元数据更新时间：2026-10-29T11:47:31.377Z
中文译文更新时间：2026-11-05T18:21:20.223Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ai-matrx/print
原文对照：https://npmcn.com/package/%40ai-matrx/print/?lang=original
项目主页：https://github.com/AI-Matrix-Engine/aidream/tree/main/apps/shared/print#readme
源码仓库：https://github.com/AI-Matrix-Engine/aidream

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：48.7 MB，204 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：^20\.16\.0 \|\| \>=22\.3\.0
- 运行依赖：26 个
- peer 依赖：react \>=18\.0\.0，react-dom \>=18\.0\.0
- 首次发布：2026-08-29T17:50:36.311Z
- 最新版本发布：2026-10-29T11:47:31.050Z
- 近 30 天下载量：77967（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：152（近 12 个月 152 个）

## 中文简介

AI Matrx打印系统:BlockPrinter合同和打印窗口组成、闪卡甲板打印机(双闪米德剪贴板、Avery 5388、研究表)、带Spec静区和电子商务有效载荷制造器的QR生成、标签表打印

## 安装

```sh
npm install @ai-matrx/print
```

也可以使用：`pnpm add @ai-matrx/print`、`yarn add @ai-matrx/print`、`bun add @ai-matrx/print`

## README

# @ai- matrx/ 打印

AI Matrx打印系统——浏览器应用程序需要转换结构的所有内容 内容入纸:微小的印刷合同,印刷窗组成,QR 在Avery上打印标签表 带有自定义标签格式的卷卷、 完整的闪卡甲板打印机、 已运出 带有两个默认打印样式表的马克下调转换器,以及 DOM-抓取/标记-PDF.

每个条目都是导入惯性,在SSF期间可以安全导入——浏览器API是 只有在你打电话的时候才动了手. `/react` 是唯一反应条目(a) 客户端组件条目 ; 其他的都是无框架的 .

## 安装

```bash
npm install @ai-matrx/print
```

反应 \\\\ 18 是可选的对等方, 仅需要用于 `@ai-matrx/print/react`。 。 。 .

## 条目

### `@ai-matrx/print` - 仅类型

`BlockPrinter`, (中文(简体) ), `PrintVariant`, (中文(简体) ), `PrintSetting`, (中文(简体) ), `PrintSettings`, (中文(简体) ), `LabelTemplate`, (中文(简体) ), `LabelFormat`, (中文(简体) ), `QrEcLevel`, (中文(简体) ), `Flashcard`——共享的 词汇,没有运行时间.

### `@ai-matrx/print/core` - 印刷合同和窗口组成

```ts
import { buildPrintDocument, openPrintWindow, printHtmlContent, escapeHtml, buildFitTextScript } from "@ai-matrx/print/core";

printHtmlContent("<h1>Report</h1><table>…</table>", "Q3 Report");
```

`BlockPrinter` 是主机需要的接口 : `label`, (中文(简体) ), `variants`, (中文(简体) ), 选项 `settings` (布尔/ 范围/ 数字/ 选择),和 `print(data, variantId, settings)`。 。 。 . `openPrintWindow` 打开有样式的窗口 带有打印 / 关闭动作并返回到 `.html` 下载时 弹出被阻. `buildFitTextScript(selectors)` 返回窗口 自动收缩脚本(0.5pt steps,6pt地板)由闪卡引擎使用.

### `@ai-matrx/print/qr` ——QR生成(不是解码)

```ts
import { generateQrDataUrl, generateQrSvg, minQrVersion, buildShortResolverUrl, buildGs1DigitalLink } from "@ai-matrx/print/qr";

const url = buildShortResolverUrl({ origin: "https://yourbrand.com", code: "a1B2c3" }); // https://yourbrand.com/l/a1B2c3
const png = await generateQrDataUrl(url);              // ECC "M", ≥4-module quiet zone — both enforced defaults
const gs1 = buildGs1DigitalLink({ origin: "https://id.yourbrand.com", gtin: "4006381333931", lot: "L42", serial: "S1001", expiry: "271231" });
```

错误更正默认为 **联合国** (从来没有L——被扣标签需要差幅)和 静态区域被限制在 ISO 最小 4 个模块。 代码值在 `buildShortResolverUrl` 是一个不透明的输入——薄荷身份服务器侧. `minQrVersion(byteLen, ecc)` 编号 : `qrModuleCount(version)` 编号 : `qrByteCapacity(version, ecc)` 显示符号数学( 字节能力) 对照参考编码器核实.

### `@ai-matrx/print/labels` ——标签单,卷盘,自定义格式

```ts
import { qrLabelsPrinter, printQrLabelSheet, downloadLabelsPdf, printCalibrationSheet, applyLabelFormat, LABEL_FORMAT_PRESETS, assertScannable, getLabelTemplate } from "@ai-matrx/print/labels";

// One data shape, three lanes: print window, PDF download, calibration page.
const data = applyLabelFormat(
  LABEL_FORMAT_PRESETS.find((f) => f.id === "garment")!,
  [{ qrValue: "https://yourbrand.com/l/a1B2c3", size: "XL", sku: "TS-001", color: "Black", price: "$29" }],
);
await printQrLabelSheet({ ...data, templateId: "avery-5160" });
```

内建模板: Avery 5160/8160, 5163/8163, 5164/8164, 22806 (2′′平方), 22807 (2′′),外加卷行股票——兄弟DK-1202 / DK-11201,DYMO 30252, 和通用 4x6′′ 热 (`kind: "roll"`) (中文(简体) ). 自定义库存只是通过 `customLabelTemplate(geometry)`; 一个 dev-time 断言可以证明每个模板 把它的床单铺平 设置包括 `startAtLabel` (重新使用部分使用) 单子, `copiesPerCode`,标签范围,和 EC 级别(默认 M).

`LabelFormat` 将标签描述为命令的元素—— `qr`, (中文(简体) ), `text` 带有 `title` 编号 : `detail` 编号 : `badge` 角色, `image` (只有可延长的http(s) URL)——所以 客户端可以将自己的布局定义为数据. 预设 : `qr-only`, (中文(简体) ), `qr-caption`, (中文(简体) ), `garment`, (中文(简体) ), `asset-spec`。 。 。 .

`assertScannable(template, payloadByteLen, ecc)` 在任何人打印前发出警告 a. 供储存使用的有效载荷过密(模数低于~0.4毫米热地); 打印道自动显示为屏幕上标语.

打印忠诚度: QRs 以 300 dpi (一打印) 表示内含数据 URIs 窗口是一个新鲜的、未经认证的文档——没有获取到任何东西), `print-color-adjust: exact`,英寸精确度 `@page` 几何学,和 a 每个模板的打印平面纸校正表。 100%比例尺打印 无边际.

### `@ai-matrx/print/flashcards` -甲板打印机

```ts
import { flashcardsPrinter } from "@ai-matrx/print/flashcards";

flashcardsPrinter.print({ title: "Biology 101", cards }, "portrait-6up-duplex", { showCutLines: true });
```

10个变体:肖像6-上和地貌4-上 (每个双人迷宫-背面) 纵列被划出如此长长的双层坐标 完美地 – 或叠叠 avery 5388 指数卡 剪接卡 两边, 学习表,只问自试,只答. 设置:卡片 范围、 切除勾选标记/ 整条剪接线、 侧标签、 牌号,以及 显示反制(背面文字、反面文字)。 脸 仅从持久 URL 打印图像 .

### `@ai-matrx/print/markdown` — 已发送的转换器样式表( p)

```ts
import { markdownToHtml, getMarkdownStylesheet, renderMarkdownDocument, printMarkdown, removeThinkingContent } from "@ai-matrx/print/markdown";

printMarkdown(markdown, { title: "Report" });                       // markdown → print window, one call
const html = markdownToHtml(markdown);                              // → .matrx-* classed body HTML
const css  = getMarkdownStylesheet({ skin: "article" });             // → the matching stylesheet
const page = renderMarkdownDocument(markdown, { title: "Report" });  // → a complete <!DOCTYPE html> page
```

两个皮肤从一个词汇. **`"document"`** (默认)发射 `.matrx-*` 分类的 HTML — 标题、 嵌入式列表、 标记下表、 图像、 链接、 代码, FAQ升级, `<flashcards>` 块-内 `.matrx-content-container`,以及 它的样式表是粘贴到 WordPress 主题的内容 . **`"article"`** 发射 带有 serif AI- Response 搜索打印窗口的赤语义标记( 代码) 栅栏是 HTML-escaped 在那里,因为一个打印窗口不会重逃. `removeThinkingContent` 条形 `<thinking>` 编号 : `<think>` 编号 : `<reasoning>` —— 全体 (简体中文) 3,这就是为什么一个模型切换标记名称不能将推理泄露到一个 打印页面.

颜色是 `var(--matrx-print-<role>, <default>)` 整个(C26):内含 倒计时器在零设置下使新应用程序正确渲染, 以及主机品牌 路过 `tokens: ":root{--matrx-print-accent:#0f766e}"` ——最后附上, 所以主机赢了。 两种工作表都带有打印硬件部件(`@media print`, (中文(简体) ), 隔页、孤儿/寡妇、, `print-color-adjust`) (中文(简体) ).

### `@ai-matrx/print/directives` - 分页,每个地方都有一个语法

```ts
import { isPageBreakLine, splitAtPageBreaks, PAGE_BREAK_MARKDOWN } from "@ai-matrx/print/directives";
```

打开 `<!-- pagebreak -->` 在自己的行上开始一个新的打印页面 (单位:千美元)`\pagebreak`, (中文(简体) ), `\newpage`, (中文(简体) ), `<!-- newpage -->` 财务报告和审定财务报表 `<div style="page-break-after: always"></div>` 也接受。 两者 转换器将其变成 `<div class="matrx-page-break">` - 一分钱 断开屏幕上的"规则",纸上真正的分页——和 `markdownToPdfBlob` 在此开始一个新的 PDF 页面。 条目没有依赖关系, 所以是一个聊天或编辑器 渲染器可以在不装载样式表的情况下识别同一种语法.

### `@ai-matrx/print/pdf` — DOM 抓取和下标 → PDF

```ts
import { captureToPDF, captureElementsToPDF, markdownToPdfBlob } from "@ai-matrx/print/pdf";

await captureToPDF(document.getElementById("report")!, { filename: "report", orientation: "landscape" });
const blob = await markdownToPdfBlob(markdown);                                    // converter + stylesheet included
const branded = await markdownToPdfBlob(markdown, { skin: "article", tokens });    // tune without replacing
const custom = await markdownToPdfBlob(markdown, { convertToHtml, loadCss });      // override either port
```

`markdownToPdfBlob` 不需要你帮忙 两个港口都有工作默认 (它们直到0.3.0之前都是需要的注射剂);提供一种替代剂 默认和离开另一个。 默认负载通过懒惰 `import("@ai-matrx/print/markdown")`所以一个只捕捉DOM的消费者 从来没有在样式表里拉出.

无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无有一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一物无一无一物无一物无一物无一物无一无一 `Front:`编号 :`Back:`减值 转换为空文档, 404 或从未完成的图像 装入(html2 canvas将画出一幅空白的矩形并什么都不说),a 光栅化失败 `onNotice` -或者说 `console.warn` 与 在未给出水槽时进行补救. `imageTimeoutMs` (默认 8000) 将等待绑定 .

html2canvas + jsPDF,在使用时懒惰地装入. 处理 Tailwind v4 问题 (克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 `getComputedStyle` 总是恢复的补丁 . `captureElementsToPDF` 刻意制作 逐页 PDF 页面; 单元素道切片 1 高高的画布横行各页.

### `@ai-matrx/print/react` — 选项对话框预览( p)

```ts
import { PrintOptionsDialog, usePrintOptions, LabelSheetPreview } from "@ai-matrx/print/react";
```

`PrintOptionsDialog` 制造任何 `BlockPrinter`变体 + 设置 (桌面对话框,移动底抽屉) 并运行打印. `LabelSheetPreview` 显示标签页的缩放、精确比例预览, 带有校正大纲模式。 尾风 CSS 类; Radix 对话框 + vaul 抽屉是捆绑的依赖.

## 许可证

麻省理工学院

### `@ai-matrx/print/document` ——打印级文档(PDF, Word, EPUB, HTML)

```ts
import { exportDocument, downloadDocumentExport } from "@ai-matrx/print/document";

const exp = await exportDocument(markdown, "docx"); // "pdf" | "docx" | "epub" | "html" | "markdown"
downloadDocumentExport(exp);                         // browser: saves "<title>.docx"
```

标记下前题的设置 :

```yaml
---
title: Quarterly Review
subtitle: Operations
author: Jane Park
date: today
cover: true
toc: true                      # or { depth: 2, title: Contents }
page: { size: a4, orientation: portrait, margins: 1in }
header: "{title} | | {date}"   # left | center | right
footer: "Page {page} of {pages}"
columns: 1
numberSections: true
csl: apa                       # apa | mla | chicago
references:
  - { id: smith2020, title: Paper Cuts, author: "Smith, Jane", issued: 2020, publisher: Acme }
---
```

在体内: `<!-- pagebreak -->`, (中文(简体) ), `<!-- section landscape columns=2 -->`, (中文(简体) ), `[[toc]]`, (中文(简体) ), `![Caption](url){#fig:chart}`, (中文(简体) ), `Table: Caption {#tbl:sales}`, (中文(简体) ), `## Methods {#sec:methods}`, (中文(简体) ), `see @fig:chart`, (中文(简体) ), `[@smith2020, p. 4]`。 。 。 . 所有四种格式都来自一棵被解析过的树(`parseDocument`),所以他们同意.

引用格式为 **引用 proc-js 语句** 在官员之上 **CSL 样式**数字 : `csl:` 接受来自 CSL 仓库(zotero.org/styles) 或 a 的样式名称 `.csl` URL( URL ) ; `apa`, (中文(简体) ), `mla`, (中文(简体) ), `chicago`, (中文(简体) ), `chicago-notes`, (中文(简体) ), `ieee` 财务报告和审定财务报表 `harvard` 为: 被捆绑(离线). 参考文献来自前题 和您的应用程序通过 `exportDocument(md, fmt, { resolveReferences: async (keys) => cslItems })`。 。 。 . PDF 以 Knuth- Liang 模式为文档的连字符 `lang`,以及 emoji / 符号通过Noto Emoji和Noto Sans Math来打印.

CSL风格和地块 引用风格语言项目 CC BY-SA 3.0. Noto Emoji和Noto Sans Math是SIL Open Font许可字体(装入于 从jsDelivr导出时间. `DocumentPrintPreview` (单位:千美元) `/react`) 显示带有打印和 每次下载.

## 常见问题

### @ai-matrx/print 是什么？

AI Matrx打印系统:BlockPrinter合同和打印窗口组成、闪卡甲板打印机\(双闪米德剪贴板、Avery 5388、研究表\)、带Spec静区和电子商务有效载荷制造器的QR生成、标签表打印

### 如何安装 @ai-matrx/print？

在项目目录运行 npm install @ai-matrx/print，或使用 pnpm add / yarn add / bun add。

### @ai-matrx/print 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ai-matrx/print 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @ai-matrx/print 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^20\.16\.0 \|\| \>=22\.3\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ai-matrx/print 可以商用吗？

@ai-matrx/print 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ai-matrx/print 的下载量有多少？

根据 npm 官方下载统计，@ai-matrx/print 在 2026/10/05 – 2026/11/03 这 30 天内被下载 77,967 次，日均约 2,599 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ai-matrx/print 还在维护吗？

最新版本 0\.12\.54 发布于 2026/10/29（7 天前）；至今共发布 152 个版本，其中过去 12 个月发布了 152 个；首次发布于 2026/08/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

