生态产品多个设计器现已发布候选版本

查看生态总览
跳转到内容

模板类型 ​

模板文档 PrintDocument 的全部类型,按 @xihan-print/core 的源码列出。当前 schema 版本 PRINT_SCHEMA_VERSION 为 1。

长度单位为 mm,字号与字间距单位为 pt,角度单位为度;颜色写作 #RGB、#RGBA、#RRGGBB、#RRGGBBAA 或 transparent。

文档与页面 ​

PrintSchemaVersion ​

模板 schema 版本号类型。

类型:typeof PRINT_SCHEMA_VERSION

PaperSpec ​

纸张。宽高为纵向尺寸,单位 mm;横向时宽高互换。

字段类型必填说明
presetPaperPresetName可省来源预设,自定义纸张不填。
widthnumber是
heightnumber是

PageBand ​

页眉或页脚的一个带区。

字段类型必填说明
heightnumber是带区高度,单位 mm。
elementsPrintElement[]是带区内的元素,坐标相对纸张左上角。

PageBandSet ​

页眉或页脚:default 为常规带区,其余为按输出页命中的变体。命中顺序为首页、末页、奇偶页,都未命中时使用 default。

字段类型必填说明
defaultPageBand是
firstPageBand可省
lastPageBand可省
oddPageBand可省
evenPageBand可省
singleSheetSingleSheetPreference是输出页既是首页又是末页且两种变体都存在时采用哪一个。

PageNumbering ​

页码编号规则。

字段类型必填说明
continuousboolean是是否接续上一页面模板的页码;为 false 或没有上一页面模板时从 start 开始。
startnumber是起始页码。

Watermark ​

平铺文字水印。

字段类型必填说明
textstring是水印文字,支持 {{path}} 占位。
fontFamilystring可省
fontSizenumber是字号,单位 pt。
colorColor是
opacitynumber是不透明度,0 到 1。
rotationnumber是逆时针旋转角度。
gapXnumber是相邻水印的水平间距,单位 mm。
gapYnumber是相邻水印的垂直间距,单位 mm。

PageGuides ​

参考线:设计时对位用,不参与分页也不打印;坐标相对纸张左上角(按页面方向换算后的纸张),单位 mm。

字段类型必填说明
xnumber[]是竖线的横坐标。
ynumber[]是横线的纵坐标。

PrintPage ​

页面模板:一份页面模板按数据量排出一张或多张输出页。页眉位于上边距之下,页脚位于下边距之上,两者之间为正文区。

字段类型必填说明
idstring是页面标识,在整份文档内唯一。
namestring可省
paperPaperSpec是
orientationPageOrientation是
marginsEdges是页边距,单位 mm。
headerPageBandSet是
footerPageBandSet是
elementsPrintElement[]是正文元素,坐标相对纸张左上角。
numberingPageNumbering是
watermarkWatermark可省
guidesPageGuides可省
metaJsonObject可省
extensionsJsonObject可省扩展自己的数据,键是扩展 id。

PrintDocument ​

打印模板文档。

字段类型必填说明
schemaVersionPrintSchemaVersion是
namestring可省
pagesPrintPage[]是
metaJsonObject可省
extensionsJsonObject可省扩展自己的数据,键是扩展 id。

元素 ​

ElementBase ​

全部元素共有的字段。坐标相对纸张左上角,单位 mm。

字段类型必填说明
idstring是元素标识,在整份文档内唯一。
typeTType是
namestring可省设计器中显示的名称。
xnumber是
ynumber是
widthnumber是
heightnumber是
lockedboolean可省是否锁定,锁定的元素在设计器中不可拖动与缩放。
previewOnlyboolean可省是否只在设计与预览中显示、不参与打印。
metaJsonObject可省宿主附加数据。
extensionsJsonObject可省扩展自己的数据,键是扩展 id;core 只检查它是对象,里面不看。

TextElement ​

固定尺寸的文本。

继承 ElementBase<'text'> 的字段。

字段类型必填说明
contentTextContent是
styleTextStyle是
wrapboolean是是否自动换行。
overflowTextOverflow是
rotationnumber是绕中心顺时针旋转的角度。
boxBoxStyle可省

LongTextElement ​

随内容纵向延展并可跨页续排的长文本。

继承 ElementBase<'longText'> 的字段。

字段类型必填说明
contentTextContent是
styleTextStyle是
boxBoxStyle可省

RichTextContent ​

富文本的内容来源:模板里写死的文档,或从数据字段读取。字段值是 HTML 串时(source 为 html)按白名单换成文档,字段值已是富文本文档对象时 source 为 document。文档是 @xihan-ui/core/rich-text 的 RichTextDocument,其中行内字段的 format 按值格式解释。

类型:| { kind: 'static', document: RichTextDocument } | { kind: 'field', field: string, source: RichTextSource }

RichTextElement ​

随内容纵向延展并可跨页续排的富文本:段落、标题、列表、分隔线与带样式的文字。

继承 ElementBase<'richText'> 的字段。

字段类型必填说明
contentRichTextContent是
styleTextStyle是基准样式:块与行内的样式在它之上覆写。
boxBoxStyle可省

TableElement ​

绑定数组数据、随行数延展并可跨页续排的表格。

继承 ElementBase<'table'> 的字段。

字段类型必填说明
dataFieldstring是数组数据的字段路径。
columnsTableColumn[]是
headerTableHeader是
bodyTableBody是
footerRowsTableFooterRow[]是
maxRowsPerPagenumber可省每页最多显示的数据行数,缺省按可用高度排满。
fillEmptyRowsboolean是数据行不足时是否用空行补齐到每页最大行数或可用高度。
borderTableBorder是

ImageElement ​

图片。

继承 ElementBase<'image'> 的字段。

字段类型必填说明
sourceImageSource是
fitImageFit是
rotationnumber是
boxBoxStyle可省

LineElement ​

直线,走向由元素框和方向共同决定。

继承 ElementBase<'line'> 的字段。

字段类型必填说明
directionLineDirection是
strokeStroke是

RectElement ​

矩形。

继承 ElementBase<'rect'> 的字段。

字段类型必填说明
strokeStroke可省边线,缺省不画边。
fillColor可省填充色,缺省不填充。
radiusnumber是圆角半径,单位 mm。
rotationnumber是

EllipseElement ​

椭圆,内切于元素框。

继承 ElementBase<'ellipse'> 的字段。

字段类型必填说明
strokeStroke可省
fillColor可省
rotationnumber是

BarCodeTextStyle ​

条码下方文字的样式。

字段类型必填说明
fontFamilystring可省
fontSizenumber是字号,单位 pt。

BarCodeElement ​

一维条码。

继承 ElementBase<'barCode'> 的字段。

字段类型必填说明
formatBarCodeFormat是码制,取值见 @xihan-ui/headless 的 BAR_CODE_FORMATS。
contentTextContent是
showTextboolean是是否在条码下方显示编码文字。
textStyleBarCodeTextStyle是
colorColor是
rotationnumber是

MatrixCodeElement ​

二维码:QR、Data Matrix、PDF417、Aztec。

继承 ElementBase<'matrixCode'> 的字段。

字段类型必填说明
formatMatrixCodeFormat是
contentTextContent是
levelMatrixCodeLevel可省纠错级别:qr 为 L / M / Q / H,pdf417 为 0–8,aztec 为纠错码字至少占的百分比 5–95,data-matrix 没有级别;缺省取码制的默认值。
colorColor是
backgroundColor可省
quietZonenumber是四周静区宽度,单位为模块数。
rotationnumber是

PageNumberElement ​

页码。

继承 ElementBase<'pageNumber'> 的字段。

字段类型必填说明
formatstring是页码格式:{{path}} 文本模板,可用的宿主变量为 $page(当前页码)与 $pages(所在编号段的总页数),如 第 {{$page}} 页 / 共 {{$pages}} 页。
numeralNumeralStyle可省页码的数字字形,即 @xihan-ui/expression 的 numeral 格式(罗马数字、中文数字);缺省为阿拉伯数字。
styleTextStyle是
boxBoxStyle可省

ExtensionElement ​

扩展登记的元素:通用字段之外的属性由扩展的原型定义,取值都是 JSON。

继承 ElementBase<string> 的字段。

字段类型必填说明
``JsonValue | undefined是

PrintElement ​

内置元素。

取其一:TextElement、LongTextElement、RichTextElement、TableElement、ImageElement、LineElement、RectElement、EllipseElement、BarCodeElement、MatrixCodeElement、PageNumberElement。

PrintElementType ​

内置元素类型。

类型:PrintElement['type']

PrintElementOf ​

按类型取元素接口。

类型:Extract<PrintElement,>

表格 ​

CellStyle ​

单元格样式。

字段类型必填说明
fontFamilystring可省
fontSizenumber是字号,单位 pt。
boldboolean是
italicboolean是
colorColor是
backgroundColor可省
alignHorizontalAlign可省水平对齐,缺省跟随列的对齐方式。
verticalAlignVerticalAlign是
paddingnumber是左右内边距,单位 mm。
lineHeightnumber是单元格文字每一行的高度,单位 mm。

TableFieldCellContent ​

表体单元格显示行内字段。

字段类型必填说明
kind'field'是
fieldstring是行对象内的字段路径。
formatValueFormat可省
emptyTextstring可省

TableTemplateCellContent ​

表体单元格按行对象替换 {{path}} 占位。

字段类型必填说明
kind'template'是
templatestring是

TableRowNumberCellContent ​

表体单元格显示从 1 开始、跨页连续的行序号。

字段类型必填说明
kind'rowNumber'是

TableExpressionCellContent ​

表体单元格以受限表达式计算,表达式中的变量为行对象的顶层字段。

字段类型必填说明
kind'expression'是
expressionstring是受限表达式源码。
formatValueFormat可省计算结果的格式。

TableCellContent ​

表体单元格内容来源。

取其一:TableFieldCellContent、TableTemplateCellContent、TableRowNumberCellContent、TableExpressionCellContent。

TableColumn ​

表格列。

字段类型必填说明
idstring是列标识,在所属表格内唯一。
titlestring是表头文本。
widthnumber是列宽,单位 mm。
alignHorizontalAlign是
contentTableCellContent是
cellTypeTableCellType是
barCodeFormatBarCodeFormat可省条码码制,cellType 为 barCode 时必填;matrixCode 单元格按 QR 编码。

TableHeader ​

表头。

字段类型必填说明
visibleboolean是
repeatboolean是表格跨页时是否在每一页重复表头。
heightnumber是表头行高,单位 mm。
styleCellStyle是

TableBody ​

表体。

字段类型必填说明
rowHeightnumber是行高,单位 mm;rowHeightMode 为 minimum 时作为最小行高。
rowHeightModeTableRowHeightMode是
styleCellStyle是

AggregateCellContent ​

表尾单元格的汇总内容。

字段类型必填说明
kind'aggregate'是
fnAggregateFunction是
fieldstring可省参与汇总的行内字段路径;fn 为 count 时可省略,表示统计行数。
scopeAggregateScope是
formatValueFormat可省

TableFooterCellContent ​

表尾单元格内容:固定文本、根数据字段、根数据模板或汇总值。

取其一:TextContent、AggregateCellContent。

TableFooterCell ​

表尾单元格。

字段类型必填说明
columnIdstring是起始列的标识。
colSpannumber是向右跨越的列数,至少为 1。
contentTableFooterCellContent是
alignHorizontalAlign可省水平对齐,缺省跟随行样式再跟随起始列。

TableFooterRow ​

表尾行,可承载固定文字、根数据字段与汇总值。

字段类型必填说明
idstring是行标识,在所属表格内唯一。
placementTableFooterPlacement是
heightnumber是行高,单位 mm。
styleCellStyle是
cellsTableFooterCell[]是

TableBorder ​

表格网格线。

字段类型必填说明
strokeStroke是
outerboolean是是否画外框。
horizontalboolean是是否画行之间的横线。
verticalboolean是是否画列之间的竖线。

通用类型 ​

Color ​

颜色:#RGB、#RGBA、#RRGGBB、#RRGGBBAA 或 transparent。

类型:string

Edges ​

四边距离,单位 mm。

字段类型必填说明
topnumber是
rightnumber是
bottomnumber是
leftnumber是

Stroke ​

描边。

字段类型必填说明
widthnumber是线宽,单位 mm。
styleStrokeStyle是
colorColor是

BorderSides ​

四边边框,缺省的一边不画线。

字段类型必填说明
topStroke可省
rightStroke可省
bottomStroke可省
leftStroke可省

BoxStyle ​

元素外框样式。

字段类型必填说明
backgroundColor可省背景色,缺省为透明。
borderBorderSides可省
paddingEdges可省内边距,单位 mm。

TextStyle ​

文本样式。

字段类型必填说明
fontFamilystring可省字体族,缺省使用运行时默认字体。
fontSizenumber是字号,单位 pt。
boldboolean是
italicboolean是
underlineboolean是
lineThroughboolean是
colorColor是
alignTextAlign是
verticalAlignVerticalAlign是
lineHeightnumber是行高,字号的倍数。
letterSpacingnumber是字间距,单位 pt。

ValueMapEntry ​

值映射的一项:数据值(按字符串比较)与显示文本,与选择类组件的选项同一形状(不带 disabled)。没有 label 时命中这一项显示为空。

字段类型必填说明
valuestring是
labelstring可省

MapFormat ​

值映射格式:按数据值查表显示文本。

字段类型必填说明
kind'map'是
entriesValueMapEntry[]是
fallbackstring可省未命中任何映射时显示的文本,缺省显示原值。

ExpressionFormat ​

表达式格式:以受限表达式把值转成显示文本,表达式中以 value 引用待格式化的值。

字段类型必填说明
kind'expression'是
expressionstring是受限表达式源码。

ValueFormat ​

值格式:数字、百分比、日期与人民币大写即 @xihan-ui/expression 的 FormatSpec,交给注入的格式化器;值映射在本包内完成,表达式格式经表达式接入点。

取其一:FormatSpec、MapFormat、ExpressionFormat。

StaticTextContent ​

固定文本。

字段类型必填说明
kind'static'是
textstring是

FieldTextContent ​

绑定单个数据字段。

字段类型必填说明
kind'field'是
fieldstring是字段路径,写法同 @xihan-ui/core/json 的 formatJsonPath,如 customer.name、items[0].qty。
formatValueFormat可省
emptyTextstring可省字段值为空时显示的文本。

TemplateTextContent ​

含 {{path}} 占位的文本模板,占位按数据字段替换。

字段类型必填说明
kind'template'是
templatestring是

ExpressionTextContent ​

以受限表达式计算的文本,表达式中的变量为数据对象的顶层字段。

字段类型必填说明
kind'expression'是
expressionstring是受限表达式源码。
formatValueFormat可省计算结果的格式。

TextContent ​

文本内容来源。

取其一:StaticTextContent、FieldTextContent、TemplateTextContent、ExpressionTextContent。

StaticImageSource ​

固定地址的图片。

字段类型必填说明
kind'static'是
urlstring是图片地址:http(s)、data:image、blob 或相对地址。

FieldImageSource ​

从数据字段读取图片地址。

字段类型必填说明
kind'field'是
fieldstring是

ImageSource ​

图片来源。

取其一:StaticImageSource、FieldImageSource。

取值 ​

PageOrientation ​

页面方向:portrait 纵向,landscape 横向(宽高互换)。

取值见常量 PAGE_ORIENTATIONS:

取值中文名
portrait纵向
landscape横向

PageBandVariant ​

页眉页脚变体:first 首页、last 末页、odd 奇数页、even 偶数页(按页码奇偶)。

取值见常量 PAGE_BAND_VARIANTS:

取值中文名
first首页
last末页
odd奇数页
even偶数页

PageBandKey ​

页眉页脚的全部带区键,default 为未命中任何变体时使用的带区。

类型:'default' | PageBandVariant

TextAlign ​

文本水平对齐。

取值见常量 TEXT_ALIGNS:

取值中文名
left左
center居中
right右
justify两端对齐

HorizontalAlign ​

单元格水平对齐。

取值见常量 HORIZONTAL_ALIGNS:

取值中文名
left左
center居中
right右

VerticalAlign ​

垂直对齐。

取值见常量 VERTICAL_ALIGNS:

取值中文名
top上
middle居中
bottom下

StrokeStyle ​

线型。

取值见常量 STROKE_STYLES:

取值中文名
solid实线
dashed虚线
dotted点线
double双线

TextOverflow ​

固定尺寸文本的溢出处理:clip 裁切,shrink 缩小字号以容纳,visible 允许溢出显示。

取值见常量 TEXT_OVERFLOWS:

取值中文名
clip裁掉
shrink缩小字号
visible照常显示

RichTextSource ​

富文本字段的内容格式:html 为 HTML 串,按白名单换成文档;document 为富文本文档对象。

取值见常量 RICH_TEXT_SOURCES:

取值中文名
htmlHTML
document富文本文档

ImageFit ​

图片在元素框内的适配方式。

取值见常量 IMAGE_FITS:

取值中文名
contain完整显示
cover铺满裁切
fill拉伸铺满
none原始大小

LineDirection ​

直线在元素框内的走向:horizontal 沿垂直中线,vertical 沿水平中线,diagonalDown 左上到右下,diagonalUp 左下到右上。

取值见常量 LINE_DIRECTIONS:

取值中文名
horizontal水平
vertical竖直
diagonalDown左上到右下
diagonalUp左下到右上

BarCodeFormat ​

转导出自 @xihan-ui/headless。取值:code128、ean13、ean8、upca、upce、itf14、code39。

MatrixCodeFormat ​

转导出自 @xihan-ui/headless。取值:qr、data-matrix、pdf417、aztec。

MatrixCodeLevel ​

转导出自 @xihan-ui/headless,取值随元素说明。

AggregateFunction ​

表格汇总函数。

取值见常量 AGGREGATE_FUNCTIONS:

取值中文名
sum求和
avg平均
count计数
min最小
max最大

AggregateScope ​

表格汇总范围:page 本页数据,cumulative 截至本页的累计数据,all 全部数据。

取值见常量 AGGREGATE_SCOPES:

取值中文名
page本页
cumulative累计到本页
all全部

TableFooterPlacement ​

表尾行出现位置:everyPage 表格所跨的每一页,lastPage 仅表格结束的那一页。

取值见常量 TABLE_FOOTER_PLACEMENTS:

取值中文名
everyPage每一页
lastPage只在最后一页

TableRowHeightMode ​

表体行高模式:fixed 每行固定为设定的行高,minimum 以设定的行高为下限、按单元格内容撑高。

取值见常量 TABLE_ROW_HEIGHT_MODES:

取值中文名
fixed固定
minimum至少

TableCellType ​

表格列单元格的呈现类型。

取值见常量 TABLE_CELL_TYPES:

取值中文名
text文字
image图片
barCode条码
matrixCode二维码

SingleSheetPreference ​

同一输出页既是首页又是末页时优先采用的变体。

取值见常量 SINGLE_SHEET_PREFERENCES:

取值中文名
first首页
last末页

Released under The MIT License