GetStringListItemA

Diverse funktioner

Beskrivning

Det avslutande A:et betecknar ANSI (char)-DLL-ingångspunkten; ActiveX/COM-ytan exponerar bara Unicode-formen. Beteendet är identiskt med GetStringListItem och strängargument tolkas med aktuell SetAnsiMode-kod sida

Returnerar strängen på position ItemIndex i stränglistan som identifieras av StringListID. Stränglistor produceras av andra API-funktioner — vanligast CheckFileCompliance, som returnerar en post per upptäckt efterlevnadsproblem

Syntax

Delphi

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

DLL

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

Parametrar

StringListIDID:t på stränglistan som en produktionsfunktion som CheckFileCompliance returnerade
ItemIndexDet 1-baserade indexet för posten som ska hämtas. Den första posten är 1; den sista posten är GetStringListCount(StringListID). Index utanför intervallet returnerar en tom sträng

Returvärde

Strängen vid det begärda indexet, eller en tom sträng om StringListID är ogiltigt eller ItemIndex ligger utanför [1 .. GetStringListCount]

Anmärkningar

För listor som produceras av CheckFileCompliance är postformatet KOD: mänskligt läsbar beskrivning, där KOD är en av de femsiffriga problemkoder som dokumenteras på CheckFileCompliance-sidan (00002, 00003, 00005, 00006, 00007, 00011, 00012). Strippa prefixet före kolonet för att agera på koden programmatiskt

Exempel

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

Se även

GetStringListCount, ReleaseStringList, CheckFileCompliance