2016-09-30 4 views
0

私はpdfsを作成するためにiText 7で作業していましたが、実際にうまくいきましたが、フォームの検証に問題があります。私は、生成されたPDFを開いて、テキストボックスに値を入力し、Enterキーを押し、空白のメッセージボックスが開いてポップとき、PdfName.Vが前の値を検証するのはなぜですか?

import java.io.FileNotFoundException; 

import com.itextpdf.forms.PdfAcroForm; 
import com.itextpdf.forms.fields.PdfFormField; 
import com.itextpdf.kernel.color.DeviceGray; 
import com.itextpdf.kernel.geom.PageSize; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfName; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.action.PdfAction; 
import com.itextpdf.layout.Document; 

public final class PdfValidationTest { 

    /** 
    * @param args 
    * @throws FileNotFoundException 
    */ 
    public static void main(String[] args) throws FileNotFoundException { 
     PdfDocument pdfDoc = new PdfDocument(new PdfWriter("ValidationTest.pdf")); 
     Document doc = new Document(pdfDoc, PageSize.A4); 

     PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true); 
     PdfFormField name = PdfFormField.createText(pdfDoc, new Rectangle(130, 780, 126, 26)). 
        setFieldName("name"). 
        setBorderColor(new DeviceGray(0.2f)). 
        setAdditionalAction(PdfName.V, PdfAction.createJavaScript("app.alert(getField('name').value);")); 
     form.addField(name); 
     // close the document 
     doc.close();// TODO Auto-generated method stub 

    } 

} 

:次のコードは、単純なテキスト入力ボックスを使用してPDFファイルを生成します。私がそれを閉じて、テキストボックスに別の値を入力すると、ボックスに最初に入力した値がメッセージボックスに表示されます。代わりに、テキストボックスに入力された値が、ポップアップメッセージボックスに表示される値になることが期待されます。何か不足していますか?

答えて

0

私は答えを見つけました!これは検証イベントであるため、フィールド値ではなく、event.valueで現在の値を取得する必要があります。

そこで質問からのコードの更新行:

setAdditionalAction(PdfName.V, PdfAction.createJavaScript("app.alert(event.value);")); 
関連する問題