GetStringListItemA

Fonctions diverses

Description

Le A final indique le point d’entrée ANSI (char) de la DLL ; la surface ActiveX/COM n’expose que la forme Unicode. Le comportement est identique à celui de GetStringListItem et les arguments de chaîne sont interprétés selon la page de codes SetAnsiMode actuelle

Renvoie la chaîne située à la position ItemIndex dans la liste identifiée par StringListID. Les listes sont produites par d’autres fonctions d’API, le plus souvent CheckFileCompliance, qui renvoie une entrée par problème de conformité détecté

Syntaxe

Delphi

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

DLL

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

Paramètres

StringListIDID de la liste de chaînes tel que renvoyé par une fonction productrice comme CheckFileCompliance
ItemIndexIndex de base un de l’élément à récupérer. Le premier élément vaut 1 et le dernier GetStringListCount(StringListID). Un index hors limites renvoie une chaîne vide

Valeur de retour

Chaîne à l'indice demandé, ou chaîne vide si StringListID est non valide ou si ItemIndex est hors de [1 .. GetStringListCount]

Remarques

Pour les listes produites par CheckFileCompliance, le format d’un élément est CODE: human-readable description, où CODE est l’un des codes de problème à cinq chiffres documentés sur la page CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Supprimez le préfixe précédant les deux-points pour traiter le code par programme

Exemple

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

Voir aussi

GetStringListCount, ReleaseStringList, CheckFileCompliance