PDFium Delphi Component 文件

高级页面内容 API

组件: TPdf  ·  单元: PDFium
检查和编辑原生页面内容,而无需应用程序管理 PDFium 句柄或位图缓冲区

页面对象检查

PageObjectInfo 返回一个 TPdfPageObjectInfo 快照,包含句柄、对象类型、常规与旋转边界、有效矩阵、活动状态、透明度、填充与描边颜色、alpha 值、描边宽度、线条连接方式、线帽样式、虚线数组和虚线相位

HasRotatedBounds、HasActiveState 和其他 Has* 字段用于区分不可用的原生值与有效的零值

RotatedBounds 携带旋转后的四边形,HasLineJoin 和 HasLineCap 决定连接与端点样式是否有效,DashPhase 偏移虚线图案的起点

批量页面对象编辑

Info := Pdf1.PageObjectInfo(0);
Info.StrokeWidth := 4;
SetLength(Info.DashArray, 2);
Info.DashArray[0] := 8;
Info.DashArray[1] := 4;
Pdf1.UpdatePageObject(0, Info, [pocStrokeWidth, pocDashPattern]);

UpdatePageObject 把每个选中的字段应用到同一个原生对象,并且只重新生成一次页面内容

TransformPageObject 把一个仿射 FS_MATRIX 与所选对象复合

路径、剪裁路径与 Form XObject

内容标记、字形与原生对象辅助

字符检查与索引映射

CharacterInfo 返回填充与描边颜色、字体名称、PDF 字体标志、宽松字形边界、有效矩阵以及关联的文本对象句柄

CharacterIndexToTextIndex 和 TextIndexToCharacterIndex 在 PDFium 字符索引与生成的文本流索引之间转换

注释边框与外观流

TPdfAnnotation 通过 HasBorder、BorderHorizontalRadius、BorderVerticalRadius 和 BorderWidth 公开边框圆角与宽度

颜色覆盖扩展到 ColorAlpha、InteriorColor 和 InteriorColorAlpha,标记元数据由 HasAuthor、HasName、HasSubject、HasModificationDate、HasCreationDate 和 HasIcon 控制,墨迹手势、四边形几何和链接目标则通过 InkList、HasAttachmentPoints、HasLinkUri 和 LinkUri 公开

常态、悬停和按下外观流通过 HasAppearanceNormal、HasAppearanceRollover 和 HasAppearanceDown 哨兵字段及其对应的 AppearanceNormal、AppearanceRollover 和 AppearanceDown 字符串提供

读取注解时,这些哨兵字段标识的是非空的外观内容:原生 API 对缺失流和空流返回同样的空字符串,因此两者都报告 False,记录写回时也保持原样不动;调用方仍可以把哨兵字段显式设为 True 来写出一个空外观

把更新后的注释记录赋回 Annotation[Index],即可写入选定的边框或外观值

原生库、注释与表单诊断

缩略图与仿射页面变换

矩阵渲染

Matrix.a := 0.5;
Matrix.b := 0;
Matrix.c := 0;
Matrix.d := -0.5;
Matrix.e := 0;
Matrix.f := 421;
Clip.Left := 0;
Clip.Top := 0;
Clip.Right := 300;
Clip.Bottom := 421;
Bitmap := Pdf1.RenderPageWithMatrix(300, 421, Matrix, Clip);

RenderPageWithMatrix 接受一个可逆的 FS_MATRIX 和一个设备坐标下的剪裁矩形

接收调用方持有的 TBitmap 的重载直接渲染到兼容的 32 位 DIB 中,只有当无法创建外部 PDFium 位图时才回退为一次复制

矩阵渲染绘制通过渲染标志选择的页面内容和非交互注释,但不会调用表单填充覆盖层渲染器