GetStringListItemA

Funciones varias

Descripción

La A final indica el punto de entrada ANSI (char) de la DLL; la interfaz ActiveX/COM expone únicamente la forma Unicode. El comportamiento es idéntico a GetStringListItem y los argumentos de cadena se interpretan utilizando la página de códigos actual de SetAnsiMode

Devuelve la cadena en la posición ItemIndex de la lista de cadenas identificada por StringListID Las listas de cadenas son producidas por otras funciones de API, principalmente CheckFileCompliance, que devuelve una entrada por cada problema de conformidad detectado

Sintaxis

Delphi

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

DLL

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

Parámetros

StringListIDEl ID de la lista de cadenas devuelto por una función productora como CheckFileCompliance
ItemIndexEl índice basado en uno del elemento que se recuperará El primer elemento es 1; el último es GetStringListCount(StringListID) Los índices fuera de intervalo devuelven una cadena vacía

Valor devuelto

La cadena del índice solicitado, o una cadena vacía si StringListID no es válido o ItemIndex está fuera de [1 .. GetStringListCount]

Observaciones

Para las listas generadas por CheckFileCompliance, el formato del elemento es CODE: human-readable description, donde CODE es uno de los códigos de problema de cinco dígitos documentados en la página CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012) Elimine el prefijo antes de los dos puntos para actuar sobre el código mediante programación

Ejemplo

// 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;

Véase también

GetStringListCount, ReleaseStringList, CheckFileCompliance