GetTextBlockCharContentLocation
Текст, извлечение, потоки содержимого, диагностика
Описание
Возвращает стабильное расположение в потоке содержимого и диапазон закодированных исходных байтов, связанные с одним извлеченным символом
Синтаксис
Delphi
Function TPDFlib.GetTextBlockCharContentLocation(TextBlockListID, Index,
CharIndex: Integer; Out ContentLayer, StreamObjectNumber,
StreamGeneration, InstructionIndex, OperandIndex, ArrayElementIndex,
SourceByteOffset, SourceByteLength, Flags: Integer): Integer;Параметры
| TextBlockListID | Дескриптор, возвращенный ExtractPageTextBlocks |
|---|---|
| Index | Индекс текстового блока, начиная с 1 |
| CharIndex | Позиция кодовой единицы UTF-16, начиная с 1, внутри текста блока |
| ContentLayer | Слой /Contents страницы, начиная с 1, или 0 для вложенного содержимого |
| StreamObjectNumber | Номер объекта содержащего потока или 0 для прямого потока |
| StreamGeneration | Номер поколения содержащего потока |
| InstructionIndex | Индекс инструкции в декодированной программе содержимого, начиная с 0 |
| OperandIndex | Индекс операнда текстовой строки, начиная с 0 |
| ArrayElementIndex | Элемент массива TJ, начиная с 0, или -1 для прямого операнда строки |
| SourceByteOffset | Смещение в декодированном строковом значении, начиная с 0, или -1, когда безопасно адресуемый диапазон отсутствует |
| SourceByteLength | Число закодированных исходных байтов для исходного глифа или 0, когда безопасно адресуемый диапазон отсутствует |
| Flags | Побитовые флаги расположения в содержимом, описанные ниже |
Возвращаемые значения
| 1 | Запись расположения возвращена, включая синтетические записи и записи только для чтения |
|---|---|
| 0 | Дескриптор, индекс блока или индекс символа недопустим |
Флаги
PDF_TEXT_CHAR_CONTENT_LOCATION_VALID | Диапазон байтов идентифицирует строку содержимого с учетом любых флагов только для чтения |
|---|---|
PDF_TEXT_CHAR_CONTENT_LOCATION_GENERATED | Символ был сгенерирован при верстке и не имеет исходных байтов |
PDF_TEXT_CHAR_CONTENT_LOCATION_LIGATURE | Несколько извлеченных позиций UTF-16 разделяют один диапазон исходного глифа |
PDF_TEXT_CHAR_CONTENT_LOCATION_ACTUALTEXT | Символ получен из замены /ActualText и доступен только для чтения |
PDF_TEXT_CHAR_CONTENT_LOCATION_NESTED | Символ получен из вложенного содержимого Form и доступен только для чтения |
PDF_TEXT_CHAR_CONTENT_LOCATION_CROSS_LAYER | Операнд и оператор показа текста пересекают слои содержимого страницы и доступны только для чтения |
PDF_TEXT_CHAR_CONTENT_LOCATION_TRANSCODED | Исходная строка была перекодирована до шрифтового отображения, поэтому декодированные смещения не могут безопасно адресовать ее исходные байты |
Примечания
Смещения адресуют декодированные байты строки в кодировке шрифта, а не текст Unicode
Дополнительные символы и развертки лигатур могут возвращать один и тот же диапазон источника для более чем одной позиции UTF-16
Используйте ReplaceTextBlockCharSourceBytes, только когда установлен флаг допустимости и ни один из флагов только для чтения не присутствует
Поиск расположения использует интервалы времени извлечения и не разбирает содержимое страницы повторно