ConvertTextToPaths
内容流编辑、字体
说明
将选定页面上显示文本的指令重写为矢量 Form XObject 调用,同时保留字形位置、文本间距、书写模式、变换、填充颜色、描边颜色和描边设置
TrueType 和 Type 1 字形轮廓仅提取一次并复用于重复字形,Type 3 CharProc 转换为普通 Form XObject,并保留字体矩阵、边界框和资源范围,移除原始显示文本和字体选择指令
对于显式目标数组,函数会搜索文档名称树,并在存在时返回匹配的目标名称
转换后的文本不再可搜索、选择或作为文本提取,但仍为可缩放的矢量内容,供渲染和打印
语法
Delphi
Function TPDFlib.ConvertTextToPaths(Const PageRange: WideString= ''; Options: Integer= PDF_TEXT_PATH_DEFAULT): Integer;
ActiveX
Function PDFlib::ConvertTextToPaths(PageRange As String, Options As Long) As Long
DLL
int DLConvertTextToPaths(int InstanceID, const wchar_t *PageRange, int Options);
int DLConvertTextToPathsA(int InstanceID, const char *PageRange, int Options);
参数
| PageRange | 使用从 1 开始的页码表示的页面范围表达式。空值会选择所有页面 |
|---|---|
| Options | 按位组合 PDF_TEXT_PATH_RECURSE_FORMS 以转换嵌套 Form XObjects,及 PDF_TEXT_PATH_PURGE_FONTS 以移除变为未使用的源字体资源。PDF_TEXT_PATH_DEFAULT 会启用这两个选项 |
返回值
| 1 or greater | 已转换的显示文本指令数 |
|---|---|
| 0 | 未找到符合条件的文本,范围或选项无效,或者转换失败,请检查 LastErrorCode 以区分错误 |
错误代码
| 506 | 源字体无法提供受支持的矢量字形程序 |
|---|---|
| 507 | 文本裁剪渲染模式需要无法由独立字形 Form 表示的裁剪路径 |
| 508 | 文本程序、字体状态或递归 Form 资源作用域格式错误或存在歧义 |
示例
Converted := PDF.ConvertTextToPaths('1-3,5', PDF_TEXT_PATH_DEFAULT);
If (Converted= 0)and (PDF.LastErrorCode<> 0) Then
raise Exception.Create(PDF.LastError);