property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | 目前頁面上以 0 為基底的字元索引,範圍 0 到 CharacterCount - 1 |
CharacterIsHyphen 在 PDFium 將 Index 處的字元分類為軟式(換行)連字號、而非屬於複合字的普通連字號時,傳回 True。此分類採啟發式:它會檢視字元的 Unicode code point、行尾位置,以及下一個文字執行的鄰近程度,以決定合併各行時是否應保留該連字號
軟式連字號由排版引擎(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;