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 и числа кернинга

Два независимых отпечатка обнаруживают устаревшее содержимое до разбора и записи, поэтому старый результат извлечения не может незаметно указывать на измененные байты

Повторно извлекайте текст страницы после каждой успешной замены, поскольку все расположения из предыдущего списка устарели

Символы, развернутые из лигатур, делят один диапазон источника и должны рассматриваться как один исходный глиф

Выбранная страница восстанавливается после успеха или неудачи