9.9. Schrifteigenschaften nach XML extrahieren

Wie in Kapitel 3.24: „Schriften“ beschrieben, bergen Schriften eine Komplexität, die ruhig öfter getestet werden sollte. Sie können Informationen über Schriften mit dem Hilfsprogramm ExtractFontInfo als XML-Datei aus PDF extrahieren. Diese XML-Datei zeigt, wie die Schriften für PDFUnit aussehen.

Der Algorithmus, der die XML-Datei erzeugt, ist der gleiche, der von PDFUnit für Tests verwendet wird.

Aufruf

::
:: Extract information about fonts of a PDF document into an XML file
::

@echo off
setlocal
set CLASSPATH=./lib/aspectj-1.8.7/*;%CLASSPATH%
set CLASSPATH=./lib/bouncycastle-jdk15on-153/*;%CLASSPATH%
set CLASSPATH=./lib/commons-collections4-4.1/*;%CLASSPATH%
set CLASSPATH=./lib/commons-logging-1.2/*;%CLASSPATH%
set CLASSPATH=./lib/pdfbox-2.0.0/*;%CLASSPATH%
set CLASSPATH=./lib/pdfunit-2016.05/*;%CLASSPATH%

set TOOL=com.pdfunit.tools.ExtractFontInfo
set OUT_DIR=./tmp
set IN_FILE=fonts_11_japanese.pdf
set PASSWD=

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

Eingabe

Für das japanische PDF-Dokument fonts_11_japanese.pdf zeigt der Adobe Reader® folgende Schriften:

Ausgabe

Die erzeugte Ausgabedatei _fontinfo_fonts_11_japanese.out.xml sieht dann so aus:

<?xml version="1.0" encoding="UTF-8" ?>
<fonts>
  <font basename="Arial-BoldMT"       name="Arial-BoldMT"      
        type="TrueType"               vertical="false"          embedded="false" />
  <font basename="ArialMT"            name="ArialMT"           
        type="TrueType"               vertical="false"          embedded="false" />
  <font basename="Century"            name="MEEADE+Century"    
        type="TrueType"               vertical="false"          embedded="true"  />
  <font basename="HGPGothicE"         name="MFHLHH+HGPGothicE" 
        type="Type0"                  vertical="false"          embedded="true"  />
  <font basename="MS-Gothic"          name="MDOLLI+MS-Gothic"  
        type="Type0"                  vertical="true"           embedded="true"  />
  <font basename="MS-Gothic"          name="MDOLLI+MS-Gothic"  
        type="Type0"                  vertical="false"          embedded="true"  />
  <font basename="MS-Mincho"          name="MEOFCM+MS-Mincho"  
        type="Type0"                  vertical="false"          embedded="true"  />
  <font basename="MS-PGothic"         name="MDOMCG+MS-PGothic" 
        type="Type0"                  vertical="false"          embedded="true"  />
  <font basename="MS-PGothic"         name="MDOMCG+MS-PGothic" 
        type="Type0"                  vertical="true"           embedded="true"  />
  <font basename="MS-PMincho"         name="MEKHMP+MS-PMincho" 
        type="Type0"                  vertical="false"          embedded="true"  />
  <font basename="TimesNewRomanPSMT"  name="TimesNewRomanPSMT" 
        type="TrueType"               vertical="false"          embedded="false" />
</fonts>

Die XML-Datei listet jedes Subset einer Schriftart einzeln auf. Dadurch können sich Abweichungen von der Anzeige durch den Adobe Reader® ergeben.