9.7. PDF-Dokument seitenweise in PNG umwandeln

Wenn Sie formatierten Text testen wollen, geht das nur so, dass die PDF-Seite in ein Bild gerendert wird und dieses Bild anschließend gegen eine Bildvorlage verglichen wird. Das Kapitel 3.15: „Layout - gerenderte volle Seiten“ beschreibt Layout-Tests unter Verwendung gerenderter Seiten und das Hilfsprogramm RenderPdfToImages rendert ein PDF-Dokument seitenweise in PNG-Dateien.

Aufruf

::
:: Render PDF into image files. Each page as a file.
::

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

set TOOL=com.pdfunit.tools.RenderPdfToImages
set OUT_DIR=./tmp
set IN_FILE=compareToMaster.pdf
set PASSWD=

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

Eingabe

Die Eingabe-Datei compareToMaster.pdf enthält 4 Seiten mit unterschiedlichen Bildern und Texten. Die erste Seite sieht im PDF-Reader SumatraPDF (http://code.google.com/p/sumatrapdf) folgendermaßen aus:

Ausgabe

Nach dem Rendern sind 4 Dateien entstanden:

.\tmp\_rendered_compareToMaster_page1
.\tmp\_rendered_compareToMaster_page2
.\tmp\_rendered_compareToMaster_page3
.\tmp\_rendered_compareToMaster_page4

Von diesen sieht die erste Datei als Bild genauso aus, wie im PDF-Reader.

PDFUnit benutzt intern den gleichen Algorithmus zum Rendern, wie ihn auch das Extraktionsprogramm benutzt. Insofern bedeuten Abweichungen in einem Test, dass sich das PDF-Dokument seit dem Zeitpunkt des Renderns verändert hat.

PDFUnit nutzt intern die Klasse org.jpedal.PdfDecoder aus dem Projekt jPedal (http://www.idrsolutions.com/). Danke an die Entwickler.