GetStringListItemA
Funções diversas
Descrição
O sufixo A indica o ponto de entrada ANSI (char) da DLL; a superfície ActiveX/COM expõe apenas a forma Unicode. O comportamento é idêntico ao de GetStringListItem e os argumentos de string são interpretados usando a página de código atual definida por SetAnsiMode
Retorna a string na posição ItemIndex da string list identificada por StringListID. String lists são produzidas por outras funções da API — o caso mais comum é CheckFileCompliance, que retorna uma entrada por problema de conformidade detectado.
Sintaxe
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
Parâmetros
| StringListID | O ID da lista de strings conforme retornado por uma função produtora, como CheckFileCompliance. |
|---|---|
| ItemIndex | O índice do item a obter, com base 1. O primeiro item é 1; o último é GetStringListCount(StringListID). Índices fora do intervalo retornam uma string vazia. |
Valor de retorno
A string no índice solicitado, ou uma string vazia se StringListID for inválido ou ItemIndex estiver fora de [1 .. GetStringListCount].
Observações
Para listas produzidas por CheckFileCompliance, o formato do item é CODE: descrição legível, em que CODE é um dos códigos de ocorrência de cinco dígitos documentados na página da CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Remova o prefixo antes dos dois-pontos para tratar o código programaticamente.
Exemplo
// 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;