DAGetTextBlockCharContentLocation
ダイレクトアクセス、テキスト、抽出、コンテンツストリーム、診断
説明
Direct Accessで抽出した1文字に関連付けられた、安定したコンテンツストリーム位置とエンコード済みソースバイト範囲を返します
構文
Delphi
Function TPDFlib.DAGetTextBlockCharContentLocation(TextBlockListID, Index,
CharIndex: Integer; Out ContentLayer, StreamObjectNumber,
StreamGeneration, InstructionIndex, OperandIndex, ArrayElementIndex,
SourceByteOffset, SourceByteLength, Flags: Integer): Integer;パラメータ
| TextBlockListID | DAExtractPageTextBlocksが返したハンドル |
|---|---|
| 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 | GetTextBlockCharContentLocationと共通のビットフラグ形式のコンテンツ位置フラグ |
戻り値
| 1 | 位置レコードが返されました。合成レコードや読み取り専用レコードも含みます |
|---|---|
| 0 | ハンドル、ブロックインデックスまたは文字インデックスが無効です |
備考
ダイレクトアクセスのロケーションは診断用かつ読み取り専用です。ReplaceTextBlockCharSourceBytesは選択された編集可能なドキュメントに対して動作するためです
オフセットはUnicodeテキストではなく、デコードされたフォントエンコード文字列のバイトを指します
ダイレクトアクセスのファイルハンドルを閉じた後も、ロケーションデータはテキストブロックリスト内に残ります
補助文字とリガチャ展開は、複数のUTF-16位置に対して同じソース範囲を返すことがあります