9.14. XMP-Daten nach XML extrahieren

Das Hilfsprogramm ExtractXMPData liest die XMP-Daten eines PDF-Dokumentes der Dokumenten-Ebene (document level) aus und schreibt sie in eine XML-Datei. Diese Datei kann anschließend für solche PDFUnit-Tests verwendet werden, wie sie in Kapitel 3.30: „XMP-Daten“ beschrieben sind.

XMP-Daten können nicht nur auf der Dokumenten-Ebene vorkommen, sondern auch in anderen Teilen eines PDF-Dokumentes. Solche XMP-Daten werden im aktuellen Release nicht extrahiert. Für zukünftige Versionen von PDFUnit ist die Extraktion aller XMP-Daten geplant.

Aufruf

::
:: Extract XMP data from a PDF document as XML
::

@echo off
setlocal
set CLASSPATH=./lib/pdfunit-2015.10/*;%CLASSPATH%
set CLASSPATH=./lib/itext-5.5.1/*;%CLASSPATH%
set CLASSPATH=./lib/bouncycastle-jdk15on-150/*;%CLASSPATH%

set TOOL=com.pdfunit.tools.ExtractXMPData
set OUT_DIR=./tmp
set IN_FILE=LXX_vocab.pdf
set PASSWD=

java  %TOOL%  %IN_FILE%  %OUT_DIR%  %PASSWD%
endlocal

Eingabe

Es werden die XMP-Daten der Datei LXX_vocab.pdf extrahiert.

Ausgabe

Die erzeugte XML-Datei _xmpdata_LXX_vocab.out.xml wird hier verkürzt dargestellt:

<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-14, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' 
            xmlns:iX='http://ns.adobe.com/iX/1.0/'
>
...
<rdf:Description rdf:about='uuid:f6a30687-f1ac-4b71-a555-34b7622eaa94' 
                 xmlns:pdf='http://ns.adobe.com/pdf/1.3/' 
                 pdf:Producer='Acrobat Distiller 6.0.1 (Windows)' 
                 pdf:Keywords='LXX, Septuagint, vocabulary, frequency'>
</rdf:Description>
<rdf:Description rdf:about='uuid:f6a30687-f1ac-4b71-a555-34b7622eaa94' 
                 xmlns:xap='http://ns.adobe.com/xap/1.0/' 
                 xap:CreateDate='2006-05-02T11:35:38-04:00' 
                 xap:CreatorTool='PScript5.dll Version 5.2.2' 
                 xap:ModifyDate='2006-05-02T11:37:57-04:00' 
                 xap:MetadataDate='2006-05-02T11:37:57-04:00'>
</rdf:Description>
...
</rdf:RDF>
</x:xmpmeta>

Bei der Verarbeitung benutzt PDFUnit intern die Methode PdfReader.getMetadata() von iText (http://www.itextpdf.com).