9.4. Feldeigenschaften nach XML extrahieren

Das Hilfsprogramm ExtractFieldInfo erstellt eine XML-Datei mit zahlreichen Informationen zu allen Formularfeldern. So können Sie das Format von Feldern sehen und Eigenschaften, wie beispielsweise 'readonly'. Der Inhalt eines Feldes wird nicht extrahiert!

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

Aufruf

::
:: Extract formular fields from 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-logging-1.2/*;%CLASSPATH%
set CLASSPATH=./lib/commons-collections4-4.1/*;%CLASSPATH%
set CLASSPATH=./lib/pdfbox-2.0.0/*;%CLASSPATH%
set CLASSPATH=./lib/pdfunit-2016.05/*;%CLASSPATH%

set TOOL=com.pdfunit.tools.ExtractFieldInfo
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"?>
<fields>
  <!-- Width and height values are given as millimeters, rounded to integers. -->
  <field fieldName="ageField"      type="TEXT"             
         fieldHeight="8.0"         fieldWidth="11.0" 
         isChecked="false"         isEditable="true" 
         isExportable="true"       isMultiLineField="false"
         isMultiSelectable="false" isPasswordField="false" 
         isRequired="false"        isSigned="false" 
         isVisibleInPrint="true"   isVisibleOnScreen="true" 
         page="1"                  positionOnPage="[x:105.0, y=59.0]" 
  />
  <field fieldName="nameField"     type="TEXT"
         fieldHeight="8.0"         fieldWidth="71.0" 
         isChecked="false"         isEditable="true" 
         isExportable="true"       isMultiLineField="false"
         isMultiSelectable="false" isPasswordField="false" 
         isRequired="true"         isSigned="false" 
         isVisibleInPrint="true"   isVisibleOnScreen="true" 
         page="1"                  positionOnPage="[x:105.0, y=51.0]"
  />
  <!-- 3 fields deleted for presentation -->
</fields>