GetStringListItemA

Sonstige Funktionen

Beschreibung

Das nachgestellte A bezeichnet den ANSI-DLL-Einstiegspunkt (char); die ActiveX/COM-Oberfläche stellt nur die Unicode-Form bereit. Das Verhalten entspricht GetStringListItem, und Zeichenfolgenargumente werden mit der aktuellen Codepage von SetAnsiMode interpretiert

Gibt die Zeichenfolge an Position ItemIndex in der durch StringListID bezeichneten Zeichenfolgenliste zurück. Zeichenfolgenlisten werden von anderen API-Funktionen erzeugt — am häufigsten von CheckFileCompliance, das für jedes erkannte Konformitätsproblem einen Eintrag zurückgibt.

Syntax

Delphi

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

DLL

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

Parameter

StringListIDDie ID der Zeichenfolgenliste, wie sie von einer Erzeugerfunktion wie CheckFileCompliance zurückgegeben wird
ItemIndexDer einsbasierte Index des abzurufenden Elements. Das erste Element ist 1; das letzte Element ist GetStringListCount(StringListID). Indizes außerhalb des Bereichs geben eine leere Zeichenfolge zurück

Rückgabewert

Die Zeichenfolge am angeforderten Index oder eine leere Zeichenfolge, wenn StringListID ungültig ist oder ItemIndex außerhalb von [1 .. GetStringListCount] liegt

Anmerkungen

Bei von CheckFileCompliance erzeugten Listen lautet das Elementformat CODE: human-readable description, wobei CODE einer der auf der Seite CheckFileCompliance dokumentierten fünfstelligen Problemcodes ist (00002, 00003, 00005, 00006, 00007, 00011, 00012). Entfernen Sie das Präfix vor dem Doppelpunkt, um den Code programmgesteuert zu verarbeiten.

Beispiel

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

Siehe auch

GetStringListCount, ReleaseStringList, CheckFileCompliance