GetTextBlockCharContentLocation
テキスト、抽出、コンテンツストリーム、診断
説明
抽出された1文字に関連付けられた、安定したコンテンツストリーム位置とエンコード済みソースバイト範囲を返します
構文
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 | ブロックテキスト内の1始まりのUTF-16コード単位位置 |
| ContentLayer | 1始まりのページ/Contentsレイヤー。ネストされたコンテンツでは0 |
| StreamObjectNumber | 包含ストリームのオブジェクト番号。直接ストリームでは0 |
| StreamGeneration | 包含ストリームの世代番号 |
| InstructionIndex | デコード済みコンテンツプログラム内の0始まりの命令インデックス |
| OperandIndex | 0始まりのテキスト文字列オペランドインデックス |
| ArrayElementIndex | 0始まりの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つもない場合にのみ使用してください
ロケーション検索は抽出時のスパンを使い、ページコンテンツを再解析しません