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
// 重建跨行换行的单词,并丢弃软连字符
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;