GetStringListItemA
Funcții diverse
Descriere
A-ul final denumește punctul de intrare DLL ANSI (char); suprafața ActiveX/COM expune doar forma Unicode. Comportamentul este identic cu GetStringListItem, iar argumentele de tip șir sunt interpretate folosind pagina de cod SetAnsiMode curentă
Returnează șirul de la poziția ItemIndex în lista de șiruri identificată de StringListID. Listele de șiruri sunt produse de alte funcții API — cel mai des CheckFileCompliance, care returnează o intrare per problemă de conformitate detectată
Sintaxă
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
Parametri
| StringListID | ID-ul listei de șiruri, așa cum este returnat de o funcție producătoare precum CheckFileCompliance |
|---|---|
| ItemIndex | Indexul, numerotat de la 1, al elementului de preluat. Primul element este 1; ultimul element este GetStringListCount(StringListID). Indicii din afara intervalului returnează un șir gol |
Valoare returnată
Șirul de la indexul cerut sau un șir gol dacă StringListID este invalid sau ItemIndex este în afara [1 .. GetStringListCount]
Observații
Pentru listele produse de CheckFileCompliance, formatul elementului este CODE: human-readable description, unde CODE este unul dintre codurile de problemă în cinci cifre documentate pe pagina CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Eliminați prefixul de dinaintea punctului pentru a acționa pe cod programatic
Exemplu
// 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;