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
| StringListID | El ID de la lista de cadenas devuelto por una función productora como CheckFileCompliance |
|---|---|
| ItemIndex | El í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;