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);