Zurück |  | Weiter

## 9.5. JavaScript extrahieren

Das Hilfsprogramm `ExtractJavaScript` extrahiert JavaScript aus einem PDF-Dokument und erstellt daraus eine Textdatei. Das Kapitel 3.16: „JavaScript“ beschreibt, wie die Datei in Tests verwendet werden kann.

### Aufruf

    ::
    :: Extract JavaScript from a PDF document into a text 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/pdfbox-2.0.0/*;%CLASSPATH%
    set CLASSPATH=./lib/pdfunit-2016.05/*;%CLASSPATH%

    set TOOL=com.pdfunit.tools.ExtractJavaScript
    set OUT_DIR=./tmp
    set IN_FILE=javaScriptForFields.pdf
    set PASSWD=

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

### Eingabe

Die Datei `javaScriptForFields.pdf`, die schon im vorhergehenden Kapitel 9.4: „Feldeigenschaften nach XML extrahieren“ als Beispiel herhalten musste, enthält für die Felder `nameField`, `ageField` und `comment` auch JavaScript.

Innerhalb des Java-Programms, mit dem das PDF-Dokument erstellt wird, sieht der JavaScript-Code für das Feld „ageField“ so aus:

    String scriptCodeCheckAge = "var ageField = this.getField('ageField');"
           + "ageField.setAction('Validate','checkAge()');"
           + ""
           + "function checkAge() {"
           + "  if(event.value < 12) {"
           + "    app.alert('Warning! Applicant\\'s age can not be younger than 12.');"
           + "    event.value = 12;"
           + "  }"
           + "}"
    ;

### Ausgabe

Die erstellte Datei heißt `_javascript_javaScriptForFields.out.txt` und enthält den folgenden JavaScript-Code:

    var nameField = this.getField('nameField');nameField.setAction('Keystroke', ...
    var ageField = ...;function checkAge() {  if(event.value < 12) {...
    var commentField = this.getField('commentField');commentField.setAction(...

Sie können die Datei gerne neu formatieren, damit sie besser lesbar wird. Hinzugefügte Whitespaces beeinflussen einen PDFUnit-Test nicht.

### Hinweis

JavaScript wird auch für die Umsetzung der Dokumenten-Aktionen `OPEN, CLOSE, PRINT` und `SAVE` verwendet. Das hier beschriebene Hilfsprogramm extrahiert aber kein JavaScript, das an Aktionen gebunden ist. Dafür wird es in zukünftigen Releases ein neues Hilfsprogramm geben.

Zurück | Nach oben | Weiter
9.4. Feldeigenschaften nach XML extrahieren | Zum Anfang | 9.6. Lesezeichen nach XML extrahieren