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, только когда установлен флаг допустимости и ни один из флагов только для чтения не присутствует

Поиск расположения использует интервалы времени извлечения и не разбирает содержимое страницы повторно