ConvertTextToPaths

內容串流編輯、字型

描述

把所選頁面上的文字顯示指令改寫為向量 Form XObject 呼叫,同時保留字形位置、文字間距、書寫模式、變換、填色顏色、筆畫顏色與筆畫設定

TrueType 與 Type 1 字形輪廓只萃取一次,重複字形直接重用。Type 3 CharProc 會轉成一般 Form XObject,保留其字型矩陣、外接框與資源範圍。原始的文字顯示與字型選擇指令會被移除

轉換是交易式的。所有選取的內容圖層與要求的巢狀 Form 都會先在記憶體中剖析並轉換,然後才更動任何 PDF 物件。不支援的字型、文字裁切渲染模式 4 到 7、格式錯誤的文字狀態,以及有歧義的共用 Form 資源範圍,都會直接失敗,不會部分改寫文件

轉換後的文字不再可搜尋、可選取,也無法當作文字擷取。它仍是可縮放的向量內容,渲染與列印不受影響

語法

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

參數

傳回值1 or greaterNumber of text-showing instructions converted0No eligible text was found, the range or options were invalid, or conversion failed. Inspect LastErrorCode to distinguish errors
PageRange以 1 起算頁碼的頁面範圍運算式。空值表示選取所有頁面
OptionsPDF_TEXT_PATH_RECURSE_FORMS(轉換巢狀 Form XObject)與 PDF_TEXT_PATH_PURGE_FONTS(移除不再使用的來源字型資源)的位元組合。PDF_TEXT_PATH_DEFAULT 同時啟用兩個選項

錯誤碼

506來源字型無法提供受支援的向量字形程式
0LastErrorCode

錯誤碼

506來源字型無法提供受支援的向量字形程式
508某個文字裁切渲染模式需要的裁切路徑,無法用獨立的字形 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);