ReplaceTextBlockCharSourceBytes
Tekst, wyodrębnianie, strumienie zawartości, edycja dokumentów
Opis
Zamienia zakodowany zakres bajtów źródłowych zmapowany na jeden wyekstrahowany znak w wybranym dokumencie
Składnia
Delphi
Function TPDFlib.ReplaceTextBlockCharSourceBytes(TextBlockListID, Index,
CharIndex: Integer; Const NewSource: AnsiString): Integer;Parametry
| TextBlockListID | Uchwyt zwrócony przez ExtractPageTextBlocks dla wybranego dokumentu |
|---|---|
| Index | Indeks bloku tekstu liczony od 1 |
| CharIndex | Pozycja jednostki kodowej UTF-16 liczona od 1 wewnątrz tekstu bloku |
| NewSource | Surowe bajty zamiany w aktywnym kodowaniu czcionki PDF, nie tekst Unicode |
Wartości zwracane
| 1 | Zmapowany zakres bajtów został zastąpiony, a jego warstwa treści strony została przepisana |
|---|---|
| 0 | Położenie jest nieprawidłowe, nieaktualne albo tylko do odczytu, albo nie udało się przepisać warstwy treści |
Kody błędów
PDFLIB_ERROR_TEXT_LOCATION_INVALID | Lista, indeks, położenie lub instrukcja treści jest nieprawidłowa |
|---|---|
PDFLIB_ERROR_TEXT_LOCATION_STALE | Warstwa treści strony docelowej zmieniła się od momentu ekstrakcji |
PDFLIB_ERROR_TEXT_LOCATION_READ_ONLY | Znak jest generowany, podstawiony przez /ActualText, zagnieżdżony w Form, transkodowany przed mapowaniem czcionki albo rozdzielony między warstwy treści |
Uwagi
Metoda przepisuje tylko zawierającą warstwę treści strony i zachowuje sąsiednie ciągi Tj, ciągi tablic TJ oraz liczby kerningu
Dwa niezależne odciski palca wykrywają nieaktualną treść przed parsowaniem i zapisem, więc stary wynik ekstrakcji nie może po cichu celować w zmienione bajty
Ponownie wyekstrahuj tekst strony po każdej udanej zamianie, bo wszystkie lokalizacje z poprzedniej listy są nieaktualne
Znaki rozwiniętych ligatur dzielą jeden zakres źródłowy i powinny być traktowane jako jeden źródłowy glif
Wybrana strona jest przywracana po sukcesie albo niepowodzeniu