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;

另見

GetStringListCount, ReleaseStringList, CheckFileCompliance