ReplaceTextBlockCharSourceBytes
Текст, извлечение, потоки содержимого, редактирование документов
Описание
Заменяет закодированный диапазон байтов источника, сопоставленный одному извлечённому символу в выбранном документе
Синтаксис
Delphi
Function TPDFlib.ReplaceTextBlockCharSourceBytes(TextBlockListID, Index,
CharIndex: Integer; Const NewSource: AnsiString): Integer;Параметры
| TextBlockListID | Дескриптор, возвращённый ExtractPageTextBlocks для выбранного документа |
|---|---|
| Index | Индекс текстового блока с базой 1 |
| CharIndex | Позиция кодовой единицы UTF-16 с базой 1 внутри текста блока |
| NewSource | Сырые замещающие байты в кодировке активного шрифта PDF, а не текст Unicode |
Возвращаемые значения
| 1 | Сопоставленный диапазон байтов заменён, а его слой содержимого страницы перезаписан |
|---|---|
| 0 | Позиция недопустима, устарела или доступна только для чтения, либо слой содержимого не удалось перезаписать |
Коды ошибок
PDFLIB_ERROR_TEXT_LOCATION_INVALID | Список, индекс, позиция или инструкция содержимого недопустимы |
|---|---|
PDFLIB_ERROR_TEXT_LOCATION_STALE | Слой содержимого целевой страницы изменился с момента извлечения |
PDFLIB_ERROR_TEXT_LOCATION_READ_ONLY | Символ сгенерирован, подставлен через /ActualText, вложен в Form, перекодирован до сопоставления шрифта или разрезан по слоям содержимого |
Замечания
Метод переписывает только содержащий слой содержимого страницы и сохраняет соседние строки Tj, строки массива TJ и числа кернинга
Два независимых отпечатка обнаруживают устаревшее содержимое до разбора и записи, поэтому старый результат извлечения не может незаметно указывать на измененные байты
Повторно извлекайте текст страницы после каждой успешной замены, поскольку все расположения из предыдущего списка устарели
Символы, развернутые из лигатур, делят один диапазон источника и должны рассматриваться как один исходный глиф
Выбранная страница восстанавливается после успеха или неудачи