property CharacterGenerated[Index: Integer]: Boolean; // read only
| Index | Indeks znaku liczony od zera na bieżącej stronie, w zakresie od 0 do CharacterCount - 1 |
CharacterGenerated zwraca True, gdy znak pod wskazanym indeksem został wygenerowany wewnętrznie przez PDFium, a nie był obecny w oryginalnym strumieniu zawartości Typowe przykłady to dekompozycja ligatur (rozbicie glifu ligatury fi na f + i), końcowy odstęp, który PDFium wstawia między sąsiadującymi przebiegami tekstu rozdzielonymi wizualnie, oraz znaki podziału wiersza wstawiane na końcu każdej wizualnej linii
Znaki wygenerowane nie mają własnego rysunku w strumieniu zawartości strony, więc ich pola ograniczające są wyprowadzane z sąsiednich glifów Zachowaj ostrożność przy ich położeniu na stronie, jeśli potrzebujesz precyzyjnego testu trafienia w pikselach; ich CharacterRectangle może zapaść się do obszaru o zerowej szerokości lub wysokości
W zadaniach takich jak dokładna ekstrakcja dosłowna (podpisy cyfrowe, porównania hashowania tekstu, archiwizacja prawna) najpierw odfiltruj znaki wygenerowane Przy zwykłym wyszukiwaniu tekstu i kopiowaniu do schowka flaga ma znaczenie wyłącznie informacyjne — PDFium już wstawił te znaki, ponieważ użytkownicy ich oczekują
True; nie zakładaj, że znaki wygenerowane są zawsze niewidocznymi glifami
// Buduje dosłowny ciąg zawierający tylko znaki ze strumienia zawartości
var
I: Integer;
S: WString;
begin
S := '';
for I := 0 to Pdf.CharacterCount - 1 do
if not Pdf.CharacterGenerated[I] then
S := S + Pdf.Character[I];
Memo1.Text := S;
end;