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
| StringListID | De ID van de stringlijst zoals geretourneerd door een producerfunctie zoals CheckFileCompliance |
|---|---|
| ItemIndex | De 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;