GetStringListItemA
雜項函式
描述
結尾的 A 表示 ANSI(char)DLL 進入點,ActiveX/COM 介面僅公開 Unicode 形式。其行為與 GetStringListItem 相同,字串引數會依據目前的 SetAnsiMode 字碼頁進行解譯
傳回 StringListID 所指字串清單中位置 ItemIndex 的字串。字串清單由其他 API 函式產生 — 最常見的是 CheckFileCompliance,每個偵測到的符合性問題回傳一筆項目。
語法
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
參數
| StringListID | 字串清單的 ID,由 CheckFileCompliance 這類產生函式傳回。 |
|---|---|
| ItemIndex | 要取出項目的索引(1 起算)。第一個項目為 1;最後一個為 GetStringListCount(StringListID)。超出範圍的索引傳回空字串。 |
傳回值
所要求索引處的字串;StringListID 無效或 ItemIndex 超出 [1 .. GetStringListCount] 則為空字串。
備註
CheckFileCompliance 產生的清單,項目格式為 代碼: 人類可讀描述,其中代碼是 CheckFileCompliance 頁面記載的五位數問題碼之一(00002、00003、00005、00006、00007、00011、00012)。程式化處理時,取冒號前的代碼即可。
範例
// Parse the issue code from each compliance issue line
var
Issues, Count, I, ColonPos: Integer;
Line, Code: WideString;
begin
Issues := PDF.CheckFileCompliance('archive.pdf', '', 1, 0);
if Issues = 0 then Exit;
Count := PDF.GetStringListCount(Issues);
for I := 1 to Count do
begin
Line := PDF.GetStringListItem(Issues, I);
ColonPos := Pos(':', Line);
if ColonPos > 0 then
Code := Trim(Copy(Line, 1, ColonPos - 1))
else
Code := Line;
if Code = '00006' then
WriteLn('Document is encrypted — cannot be PDF/A')
else
WriteLn('Issue ', Code, ': ', Line);
end;
PDF.ReleaseStringList(Issues);
end;