GetStringListItemA

Funkcje różne

Opis

Końcowa litera A oznacza punkt wejścia DLL ANSI (char); powierzchnia ActiveX/COM udostępnia wyłącznie postać Unicode. Zachowanie jest identyczne jak w GetStringListItem, a argumenty ciągów są interpretowane przy użyciu bieżącej strony kodowej SetAnsiMode

Zwraca ciąg na pozycji ItemIndex listy ciągów wskazanej przez StringListID. Listy ciągów tworzą inne funkcje API — najczęściej CheckFileCompliance, która zwraca jeden wpis na każdy wykryty problem zgodności

Składnia

Delphi

Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;

DLL

const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);

Parametry

StringListIDIdentyfikator listy ciągów zwrócony przez funkcję tworzącą, taką jak CheckFileCompliance
ItemIndexIndeks pobieranego elementu liczony od 1. Pierwszy element ma indeks 1, a ostatni GetStringListCount(StringListID). Indeks spoza zakresu zwraca pusty ciąg

Wartość zwracana

Ciąg o żądanym indeksie albo pusty ciąg, jeśli StringListID jest nieprawidłowy lub ItemIndex znajduje się poza zakresem [1 .. GetStringListCount]

Uwagi

Dla list utworzonych przez CheckFileCompliance format elementu to CODE: human-readable description, gdzie CODE jest jednym z pięciocyfrowych kodów problemów opisanych na stronie CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Aby programowo przetwarzać kod, usuń prefiks przed dwukropkiem

Przykład

// 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;

Zobacz również

GetStringListCount, ReleaseStringList, CheckFileCompliance