9.8. PDF-Seite ausschnittweise in PNG umwandeln

Die Gründe, um Tests mit gerenderten Ausschnitten einer PDF-Seite durchzuführen, sind in Kapitel 3.16: „Layout - gerenderte Seitenausschnitte“ beschrieben. Um den Seitenausschnitt richtig zu ermitteln, stellt PDFUnit das kleine Hilfsprogramm RenderPdfClippingAreaToImage zur Verfügung. Mit ihm wird der durch die Aufrufparameter bestimmte Ausschnitt als PNG-Datei exportiert und kann danach per Augenschein auf seine Richtigkeit überprüft werden. Wenn der Ausschnitt stimmt, übernehmen Sie die Parameter in Ihren Test.

Aufruf

::
:: Render a part of a PDF page into an image file
::

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

set TOOL=com.pdfunit.tools.RenderPdfClippingAreaToImage
set OUT_DIR=./tmp
set PAGENUMBER=1
set IN_FILE=documentForTextClipping.pdf
set PASSWD=

::  Format unit can only be 'mm' or 'points'
set FORMATUNIT=points

::  Put these values into your test code:
set UPPERLEFTX=50 
set UPPERLEFTY=130
set WIDTH=170
set HEIGHT=25

java  %TOOL%  %IN_FILE%  %PAGENUMBER%  %OUT_DIR%     1
      %FORMATUNIT%  %UPPERLEFTX%  %UPPERLEFTY%  %WIDTH%  %HEIGHT%  %PASSWD%
endlocal

1

Zeilenumbruch nur für diese Dokumentation

Die 4 Werte, die den Ausschnitt beschreiben, müssen entweder Millimeter mm oder Points points sein. Sie werden einen Taschenrechner bemühen müssen, um an die richtigen Werte zu kommen.

Eingabe

Die Eingabedatei documentForTextClipping.pdf enthält im oberen Bereich den Text: Content on first page.

Ausgabe

Die erzeugte Bilddatei muss auf ihre Richtigkeit überprüft werden.

Damit Sie bei mehreren Seitenausschnitten nicht den Überblick verlieren, enthält der Dateiname die Ausschnittparameter. PDFUnit und das Hilfsprogramm RenderPdfClippingAreaToImage nutzen den gleichen Algorithmus. Deshalb können Sie die Parameter aus dem Skript direkt in Ihren Test übernehmen oder auch nachträglich aus dem Dateinamen ableiten:

#
# Parameters from filename:
#

_rendered_documentForTextClipping_page-1_area-50-130-170-25.out.png
                                               |  |   |   |
                                               |  |   |   +- height
                                               |  |   +- width
                                               |  +- upperLeftY
                                               +- upperLeftX

PDFUnit nutzt für dieses Hilfsprogramm intern Funktionen aus dem Projekt jPedal (http://www.idrsolutions.com/). Nochmals Danke an die Entwickler.