GetStringListItemA
기타 함수
설명
끝의 A는 ANSI(char) DLL 진입점을 나타내며 ActiveX/COM 표면은 Unicode 형식만 노출합니다. 동작은 GetStringListItem과 동일하고 문자열 인수는 현재 SetAnsiMode 코드 페이지를 사용해 해석됩니다
StringListID로 식별한 문자열 목록의 ItemIndex 위치 문자열을 반환합니다. 문자열 목록은 다른 API 함수에서 생성하며 가장 흔한 CheckFileCompliance는 감지된 규정 준수 문제마다 한 항목을 반환합니다
구문
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
매개변수
| StringListID | CheckFileCompliance 같은 생성 함수가 반환한 문자열 목록의 ID |
|---|---|
| ItemIndex | 가져올 항목의 1부터 시작하는 인덱스입니다 첫 번째 항목은 1이고 마지막 항목은 GetStringListCount(StringListID)입니다 범위를 벗어난 인덱스는 빈 문자열을 반환합니다 |
반환 값
요청한 인덱스의 문자열을 반환하며 StringListID가 잘못되었거나 ItemIndex가 [1 .. GetStringListCount] 범위를 벗어나면 빈 문자열을 반환합니다
비고
CheckFileCompliance가 만든 목록의 항목 형식은 CODE: human-readable description이며 CODE는 CheckFileCompliance 페이지에 문서화된 다섯 자리 문제 코드(00002, 00003, 00005, 00006, 00007, 00011, 00012) 중 하나입니다. 코드로 처리하려면 콜론 앞 접두사를 제거합니다
예제
// 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;