import { CommandClause } from "@psdk/frame-father"; import { CText } from "./text"; import { InputImage } from "@psdk/frame-imageb"; /** * 图片形式的文字。 * * 用于打印机内置字库不支持的特殊字符(例如化学式下标 C₁₅H₃₀O₂): * 先在外部把文字绘制成 RGBA 像素(如 uni.createCanvasContext + uni.canvasGetImageData), * 构建成 InputImage 后传入,CTextCanvas 会以图片形式打印。 * * 用法: * ```ts * // 1. 外部 Canvas 生成文字像素 * const inputImage = new InputImage({ data, width, height }); * // 2. 加入 CPCL 命令链 * .text(new CTextCanvas({ x: 10, y: 10, inputImage })) * ``` */ export declare class CTextCanvas extends CText { private readonly inputImage; private readonly compress; constructor(options: { /** * 起始横坐标(必选) */ x: number; /** * 起始纵坐标(必选) */ y: number; /** * InputImage(必选,外部通过 Canvas 绘制文字后生成) */ inputImage: InputImage; /** * 是否压缩图片(可选,默认 false) */ compress?: boolean; }); /** 核心:返回 CImage 的命令,将文字以图片形式打印 */ clause(): CommandClause; /** * 静态工具方法:使用 uni-app Canvas 把文字渲染成 InputImage。 * * 用于打印机内置字库不支持的特殊字符(如化学式下标 C₁₅H₃₀O₂)。 * 需页面中存在对应的 `` 元素。 * * 用法: * ```ts * const inputImage = await CTextCanvas.generateUniCanvasImage({ * content: "主要成分内容C₁₅H₃₀O₂", * fontSize: 32, * canvasId: "ctextCanvas", * component: this, // uni-app 页面/组件实例 * }); * // 加入 CPCL 命令链 * .text(new CTextCanvas({ x, y, inputImage })) * ``` */ static generateUniCanvasImage(options: { /** * 要绘制的文字内容(必选) */ content: string; /** * 字号(必选,单位 px,如 32) */ fontSize: number; /** * 页面中 元素的 canvas-id(必选) */ canvasId: string; /** * uni-app 页面/组件实例(可选,用于在组件内定位 canvas) */ component?: any; /** * 内边距(可选,默认 2px,对齐 Java CTextCanvas) */ padding?: number; /** * 画布最大宽(可选,默认 2400。需 ≤ 页面 元素宽度,文字较长时可传入更大的值) */ maxWidth?: number; /** * 画布最大高(可选,默认 2400。需 ≤ 页面 元素高度) */ maxHeight?: number; }): Promise; } //# sourceMappingURL=textcanvas.d.ts.map