GetStringListItemA
Çeşitli işlevler
Açıklama
Sondaki A, ANSI (char) DLL giriş noktasını belirtir; ActiveX/COM yüzeyi yalnızca Unicode biçimini sunar. Davranış GetStringListItem ile aynıdır ve dize bağımsız değişkenleri geçerli SetAnsiMode kod sayfası kullanılarak yorumlanır
StringListID ile tanımlanan dize listesinde ItemIndex konumundaki dizeyi döndürür. Dize listeleri başka API işlevleri tarafından üretilir — en yaygın olarak algılanan her uygunluk sorunu için bir girdi döndüren CheckFileCompliance tarafından
Sözdizimi
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
Parametreler
| StringListID | CheckFileCompliance gibi bir üretici işlevinin döndürdüğü dize listesinin ID değeri |
|---|---|
| ItemIndex | Alınacak öğenin bir tabanlı dizini. İlk öğe 1, son öğe GetStringListCount(StringListID) değeridir. Aralık dışındaki dizinler boş dize döndürür |
Dönüş değeri
İstenen dizindeki dize; StringListID geçersizse veya ItemIndex [1 .. GetStringListCount] aralığının dışındaysa boş dize
Açıklamalar
CheckFileCompliance tarafından üretilen listelerde öğe biçimi CODE: human-readable description şeklindedir; burada CODE, CheckFileCompliance sayfasında belgelenen beş basamaklı sorun kodlarından biridir (00002, 00003, 00005, 00006, 00007, 00011, 00012). Kod üzerinde programlı işlem yapmak için iki noktadan önceki öneki ayırın
Örnek
// 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;