GetStringListItemA

Funções diversas

Descrição

O A final indica o ponto de entrada ANSI (char) da DLL; a superfície ActiveX/COM expõe apenas a forma Unicode. O comportamento é idêntico a GetStringListItem e os argumentos de cadeia são interpretados através da página de códigos atual de SetAnsiMode

Devolve a cadeia na posição ItemIndex da lista de cadeias identificada por StringListID. As listas de cadeias são produzidas por outras funções da API — mais frequentemente por CheckFileCompliance, que devolve uma entrada por cada problema de conformidade detetado

Sintaxe

Delphi

Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;

DLL

const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);

Parâmetros

StringListIDO ID da lista de cadeias devolvido por uma função produtora, como CheckFileCompliance
ItemIndexO índice com base 1 do item a obter. O primeiro item é 1; o último é GetStringListCount(StringListID). Os índices fora do intervalo devolvem uma cadeia vazia

Valor devolvido

A cadeia no índice pedido, ou uma cadeia vazia se StringListID for inválido ou ItemIndex estiver fora de [1 .. GetStringListCount]

Observações

Nas listas produzidas por CheckFileCompliance, o formato do item é CODE: human-readable description, em que CODE é um dos códigos de problema de cinco algarismos documentados na página CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Remova o prefixo anterior aos dois pontos para atuar programaticamente sobre o código

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;

Consulte também

GetStringListCount, ReleaseStringList, CheckFileCompliance