Насколько я знаю, метаданные 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: это будет быстрее (не нужно разбирать файл), но потребуется много дополнительного кодирования.