Самый простой способ чтения метаданных PDF (/ A) из приложения Delphi? - PullRequest
0 голосов
/ 20 августа 2011

Для PDF / A документов, которые содержат дополнительную информацию (например, данные штрих-кода) во встроенных метаданных, существует простой способ доступа к этой информации из приложения Delphi - вместо использования полнофункционального PDF библиотека приложений для чтения / записи? (Например, инструменты командной строки с открытым исходным кодом)

1 Ответ

2 голосов
/ 20 августа 2011

Насколько я знаю, метаданные PDF просто доступны в виде простого текста в документе PDF / A.

Таким образом, вы можете искать шаблон <x:xmpmeta в файле, тогда все метаданные доступны здесь, до </x:xmpmeta>. Затем вы получаете содержимое XML.

function ExtractPDFMetadata(const aPDFFileName: TFileName): UTF8String;
var tmp: RawByteString;
    i: integer;
begin
  with TFileStream.Create(aPDFFileName,fmOpenRead) do 
  try
    SetLength(tmp,Size);
    Read(tmp[1],Size);
  finally
    Free;
  end;
  result := '';
  i := pos('<x:xmpmeta',tmp);
  if i=0 then exit;
  delete(tmp,1,i-1);
  i := pos('</x:xmpmeta>',tmp);
  if i=0 then exit;
  result := copy(tmp,1,i+12);
end;

Затем эту UTF8String можно использовать для анализа содержимого XML, как обычно.

Вы также можете найти этот XML-контент, используя запись типа «Метаданные» в каталоге PDF: это будет быстрее (не нужно разбирать файл), но потребуется много дополнительного кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...