GetStringListItemA

Funcții diverse

Descriere

A-ul final denumește punctul de intrare DLL ANSI (char); suprafața ActiveX/COM expune doar forma Unicode. Comportamentul este identic cu GetStringListItem, iar argumentele de tip șir sunt interpretate folosind pagina de cod SetAnsiMode curentă

Returnează șirul de la poziția ItemIndex în lista de șiruri identificată de StringListID. Listele de șiruri sunt produse de alte funcții API — cel mai des CheckFileCompliance, care returnează o intrare per problemă de conformitate detectată

Sintaxă

Delphi

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

DLL

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

Parametri

StringListIDID-ul listei de șiruri, așa cum este returnat de o funcție producătoare precum CheckFileCompliance
ItemIndexIndexul, numerotat de la 1, al elementului de preluat. Primul element este 1; ultimul element este GetStringListCount(StringListID). Indicii din afara intervalului returnează un șir gol

Valoare returnată

Șirul de la indexul cerut sau un șir gol dacă StringListID este invalid sau ItemIndex este în afara [1 .. GetStringListCount]

Observații

Pentru listele produse de CheckFileCompliance, formatul elementului este CODE: human-readable description, unde CODE este unul dintre codurile de problemă în cinci cifre documentate pe pagina CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Eliminați prefixul de dinaintea punctului pentru a acționa pe cod programatic

Exemplu

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

Consultați și

GetStringListCount, ReleaseStringList, CheckFileCompliance