9.4. Feldeigenschaften nach XML extrahieren

Das Hilfsprogramm ExtractFieldsInfo erstellt eine XML-Datei mit zahlreichen Informationen zu allen Formularfeldern. Der Inhalt eines Feldes wird nicht extrahiert!

Die Tests auf Feldeigenschaften werden in Kapitel 3.11: „Formularfelder“ beschrieben.

Aufruf

::
:: Extract formular fields from a PDF document into an XML file
::

@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.ExtractFieldsInfo
set OUT_DIR=./tmp
set IN_FILE=javaScriptForFields.pdf
set PASSWD=

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

Eingabe

Die Eingabedatei javaScriptForFields.pdf ist ein eigenes Beispieldokument mit 3 Eingabefeldern und zwei Buttons:

Ausgabe

Die erzeugte Ausgabedatei _fieldinfo_javaScriptForFields.out.xml wurde zur besseren Darstellung formatiert und gekürzt:

<?xml version="1.0" encoding="UTF-8" ?>
<fieldlist>
  <!-- Width and height values are given as millimeters. -->             
  <field name="ageField"                   type="text" 
         width="30"                        height="22"                  1 
         isEditable="true"                 isRequired="false" 
         isPrintable="false"               isVisible="false" 
         isHidden="false"                  isHiddenButPrintable="false" 
         isVisibleButNotPrintable="false"  isExportable="true"
         isPasswordField="false"           isMultiLineField="false"     2 
  />
  <field name="reset"                      type="button" 
         width="35"                        height="15" 
         isEditable="true"                 isRequired="true" 
         isPrintable="false"               isVisible="false" 
         isHidden="false"                  isHiddenButPrintable="true" 
         isVisibleButNotPrintable="true"   isExportable="true"          3 
  />
  <!-- 3 fields deleted for presentation -->
</fieldlist>

1

Werte für Breite und Höhe werden in Millimeter angegeben

2 3

Einige Attribute werden typabhängig erstellt. Das Attribut isMultiLineField beispielsweise gibt es nur für Felder vom Typ text.