GetStringListItemA

Разные функции

Описание

Завершающая A обозначает точку входа DLL типа ANSI (char); интерфейс ActiveX/COM предоставляет только форму Unicode. Поведение идентично GetStringListItem, а строковые аргументы интерпретируются с использованием текущей кодовой страницы SetAnsiMode

Возвращает строку в позиции ItemIndex списка строк, обозначенного StringListID. Списки строк порождают другие функции API — чаще всего CheckFileCompliance, возвращающая по одной записи на каждую найденную проблему соответствия.

Синтаксис

Delphi

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

DLL

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

Параметры

StringListIDID списка строк, возвращённый функцией-производителем вроде CheckFileCompliance
ItemIndexИндекс извлекаемого элемента, начиная с 1: первый элемент — 1, последний — GetStringListCount(StringListID); индексы вне диапазона дают пустую строку

Возвращаемое значение

Строка по запрошенному индексу либо пустая строка, если StringListID недопустим или ItemIndex вне [1 .. GetStringListCount]

Примечания

Для списков из CheckFileCompliance формат элемента — CODE: человекочитаемое описание, где 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;

См. также

GetStringListCount, ReleaseStringList, CheckFileCompliance