property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | 目前頁面上的零起始字元索引,範圍為 0 到 CharacterCount - 1 |
CharacterIsHyphen 會在 PDFium 將 Index 處的字元分類為軟式(換行)連字號,而不是屬於複合字的普通連字號時傳回 True。這個分類是以經驗法則判定:它會觀察字元的 Unicode 碼點、行尾位置,以及後續文字區段的距離,來決定在連接各行時是否應保留該連字號
軟連字號是由排版引擎(LaTeX、Word、InDesign)插入,用來把長單字拆成多行。當你從 PDF 檢視器複製文字時,軟連字號通常會被丟棄,因此「high-
way」會貼上成 highway,而不是 high-way。這個屬性可讓你的擷取程式重現這種行為
此屬性不會區分 Unicode 軟連字號(U+00AD)與剛好位於行尾的普通連字號減號(U+002D),在這兩種情況下都會回報 True。如果你只想處理 U+00AD 的情況,請直接比對 Character[Index]
False,同一個連字號在行尾則會回報 True
// Reconstruct words across line wraps, dropping soft hyphens
var
I: Integer;
S: WString;
begin
S := '';
for I := 0 to Pdf.CharacterCount - 1 do
if not Pdf.CharacterIsHyphen[I] then
S := S + Pdf.Character[I];
Memo1.Text := S;
end;