GetStringListItemA

Overige functies

Beschrijving

Het achtervoegsel A duidt het ANSI-toegangspunt (char) van de DLL aan; het ActiveX/COM-oppervlak stelt alleen de Unicode-vorm beschikbaar. Het gedrag is identiek aan GetStringListItem en tekenreeksargumenten worden geïnterpreteerd met behulp van de huidige SetAnsiMode-codetabel

Geeft de string op positie ItemIndex terug in de stringlijst die door StringListID wordt geïdentificeerd. Stringlijsten worden door andere API-functies geproduceerd — meestal CheckFileCompliance, die één entry per gedetecteerde conformiteitsbevinding teruggeeft

Syntaxis

Delphi

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

DLL

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

Parameters

StringListIDDe ID van de stringlijst zoals geretourneerd door een producerfunctie zoals CheckFileCompliance
ItemIndexDe index van het op te halen item, beginnend bij 1. Het eerste item is 1; het laatste item is GetStringListCount(StringListID). Indexen buiten bereik geven een lege string terug

Retourwaarde

De string op de gevraagde index, of een lege string als StringListID ongeldig is of ItemIndex buiten [1 .. GetStringListCount] valt

Opmerkingen

Voor lijsten die door CheckFileCompliance worden geproduceerd is het itemformaat CODE: leesbare beschrijving, waarbij CODE een van de vijfcijferige bevindingscodes is die op de pagina CheckFileCompliance zijn gedocumenteerd (00002, 00003, 00005, 00006, 00007, 00011, 00012). Strip het prefix vóór de dubbele punt om programmatisch op de code te reageren

Voorbeeld

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

Zie ook

GetStringListCount, ReleaseStringList, CheckFileCompliance