@ai- matrx/ 打印
AI Matrx打印系统——浏览器应用程序需要转换结构的所有内容 内容入纸:微小的印刷合同,印刷窗组成,QR 在Avery上打印标签表 带有自定义标签格式的卷卷、 完整的闪卡甲板打印机、 已运出 带有两个默认打印样式表的马克下调转换器,以及 DOM-抓取/标记-PDF.
每个条目都是导入惯性,在SSF期间可以安全导入——浏览器API是
只有在你打电话的时候才动了手. /react 是唯一反应条目(a)
客户端组件条目 ; 其他的都是无框架的 .
安装
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 - 印刷合同和窗口组成
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生成(不是解码)
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 ——标签单,卷盘,自定义格式
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 -甲板打印机
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)
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 - 分页,每个地方都有一个语法
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
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)
import { PrintOptionsDialog, usePrintOptions, LabelSheetPreview } from "@ai-matrx/print/react";
PrintOptionsDialog 制造任何 BlockPrinter变体 + 设置
(桌面对话框,移动底抽屉) 并运行打印.
LabelSheetPreview 显示标签页的缩放、精确比例预览,
带有校正大纲模式。 尾风 CSS 类; Radix 对话框 + vaul
抽屉是捆绑的依赖.
许可证
麻省理工学院
@ai-matrx/print/document ——打印级文档(PDF, Word, EPUB, HTML)
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"
标记下前题的设置 :
---
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]], (中文(简体) ), {#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) 显示带有打印和
每次下载.