原生 XFA 图像与图形值
事件宿主创建原生 image、arc、line、rectangle 值子节点及其受支持的 edge、corner、fill 属性路径;draw 的生效值会送达原生 PDF 消费方
创建 draw 值
function updateGraphic(row, pngBase64) {
const image = row.logo.value.image;
image.contentType = "image/png";
image.aspect = "fit";
image.value = pngBase64;
const line = row.rule.value.line;
line.slope = "/";
line.edge.thickness = "0.25pt";
line.edge.color.value = "0,0,255";
}
原生值的选择互斥,创建过程保留模板与其他重复出现实例
arc 与 line 各允许一条 edge,rectangle 允许四条 edge 与四个 corner,arc 与 rectangle 允许一个 fill
line、rectangle 与 arc 默认 hand=even;line 默认反斜杠斜率,arc 默认 circular=0、startAngle=0、sweepAngle=360
image 默认 aspect=fit、transferEncoding=base64,contentType、href 与 name 属性为空
图像消费
内嵌 PNG 与 JPEG draw 值保留解码后的源颜色;PNG 透明度存为原生 PDF soft mask,而不是合成进源通道
fit 在名义区域内保持图像比例,none 在两个维度上独立填满区域,width 与 height 匹配指定维度的同时保持比例,actual 使用物理图像尺寸
图像在名义区域内居中并裁剪到该区域;缩放与裁剪不破坏周围 graphics state
actual 尺寸读取 PNG pHYs 与 JFIF 密度(每英寸或每厘米点数);没有受支持物理密度记录的图像用 96 DPI
替换既有模板图像 body 时保留其模板属性,除非原生表单属性覆写它们
FPC 消费方直接读取原始 PNG 与 JPEG 通道,避免经 LCL bitmap 赋值造成像素损失;重复的相同不透明图像保留原生资源复用
图形消费
创建的 rectangle、line 与 arc 值生成带生效 edge 颜色与宽度的原生路径,包括小于一磅的宽度;line 斜率与 arc 角度范围会送达消费方
新的重复实例获得独立的原生图形属性;脚本或原生属性预算失败会按字节精确还原原生 XDP
剩余细化
原生 exData XML 操作按事务语义导入外部内容并消费持久化的 XHTML draw
外部图像解析、EXIF 等额外物理元数据、imageEdit 控件消费、完整 fill 与 corner 渲染、handedness、圆弧几何与完整标量校验仍是独立实现目标
参考与相关 API
属性文法与图像模式遵循 XFA 3.3;参见 标量值属性、Draw 与 Caption 值和 交互式 XFA 运行时