GetStringListItemA
توابع متنوع
توضیحات
حرف A انتهایی نشاندهنده نقطه ورودی ANSI (char) در DLL است؛ رابط ActiveX/COM تنها فرم Unicode را نشان میدهد. رفتار آن با GetStringListItem یکسان است و آرگومانهای رشتهای با استفاده از صفحه کد فعلی SetAnsiMode تفسیر میشوند
رشتهای را در موقعیت ItemIndex از string list مشخصشده با StringListID برمیگرداند. String listها توسط سایر توابع API تولید میشوند — رایجترینشان CheckFileCompliance است که برای هر مشکل انطباق شناساییشده یک entry برمیگرداند
نحو
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
پارامترها
| StringListID | شناسهٔ فهرست رشتهها همانطور که توسط یک تابع تولیدکننده مانند CheckFileCompliance برگردانده شده است |
|---|---|
| ItemIndex | شاخص یکمبنهٔ مورد برای بازیابی. اولین مورد 1 است؛ آخرین مورد GetStringListCount(StringListID). شاخصهای خارج از بازه رشتهٔ خالی برمیگردانند |
مقدار بازگشتی
رشته در شاخص درخواستی، یا رشتهٔ خالی اگر StringListID نامعتبر باشد یا ItemIndex بیرون [1 .. GetStringListCount] باشد
ملاحظات
برای فهرستهایی که توسط CheckFileCompliance تولید میشوند، قالب item برابر CODE: human-readable description است؛ CODE یکی از کدهای پنجرقمی issue است که در صفحه CheckFileCompliance مستند شدهاند (00002، 00003، 00005، 00006، 00007، 00011، 00012). برای اقدام برنامهریزیشده روی code، prefix را قبل از colon حذف کنید
مثال
// 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;