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 | 區塊文字內從 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 位置共用一個來源字符範圍 |
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
位置查找使用萃取時取得的跨度,不重新剖析頁面內容