GetTextBlockCharContentLocation

テキスト、抽出、コンテンツストリーム、診断

説明

抽出された1文字に関連付けられた、安定したコンテンツストリーム位置とエンコード済みソースバイト範囲を返します

構文

Delphi

Function TPDFlib.GetTextBlockCharContentLocation(TextBlockListID, Index,
  CharIndex: Integer; Out ContentLayer, StreamObjectNumber,
  StreamGeneration, InstructionIndex, OperandIndex, ArrayElementIndex,
  SourceByteOffset, SourceByteLength, Flags: Integer): Integer;

パラメータ

TextBlockListIDExtractPageTextBlocksが返したハンドル
Index1始まりのテキストブロックインデックス
CharIndexブロックテキスト内の1始まりのUTF-16コード単位位置
ContentLayer1始まりのページ/Contentsレイヤー。ネストされたコンテンツでは0
StreamObjectNumber包含ストリームのオブジェクト番号。直接ストリームでは0
StreamGeneration包含ストリームの世代番号
InstructionIndexデコード済みコンテンツプログラム内の0始まりの命令インデックス
OperandIndex0始まりのテキスト文字列オペランドインデックス
ArrayElementIndex0始まりのTJ配列要素。直接文字列オペランドでは-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位置が1つのソースグリフ範囲を共有します
PDF_TEXT_CHAR_CONTENT_LOCATION_ACTUALTEXT文字は/ActualText置換に由来し、読み取り専用です
PDF_TEXT_CHAR_CONTENT_LOCATION_NESTED文字はネストされたフォームコンテンツに由来し、読み取り専用です
PDF_TEXT_CHAR_CONTENT_LOCATION_CROSS_LAYERオペランドとテキスト表示オペレーターがページコンテンツレイヤーをまたぎ、読み取り専用です
PDF_TEXT_CHAR_CONTENT_LOCATION_TRANSCODEDソース文字列はフォントマッピングの前にトランスコードされたため、デコード済みオフセットは元のバイトを安全にアドレス指定できません

備考

オフセットはUnicodeテキストではなく、デコードされたフォントエンコード文字列のバイトを指します

補助文字とリガチャ展開は、複数のUTF-16位置に対して同じソース範囲を返すことがあります

ReplaceTextBlockCharSourceBytesは、有効フラグが立っていて読み取り専用フラグが1つもない場合にのみ使用してください

ロケーション検索は抽出時のスパンを使い、ページコンテンツを再解析しません