2011-07-01 11 views
1

私はPDFフォームを用意していますが、Adobe Acrobat Proバージョン9を使用していくつかの隠しフィールド、ボタン、およびいくつかのバリデーションをjavascriptに追加しました。DynamicPDF APIを使ってJavaでPDFフォームをレンダリングする

また、JavaでdynamicPDF api(初回)を使用して、そのPDFを読み込んでいくつかの値(例:現在の日付といくつかのURLフィールドの日付)をあらかじめ入力し、バイト配列に描画してレンダリングする。

しかし、ダイナミックPDFをレンダリングすると自分のフォームが乱れてしまいます。それは私がadobeを使用して追加したボタンを完全に表示していません。ボタンはNO LABELで表示され、クリックすると*が表示されます。理由を知らない。

私はFDFマージの代わりにダイナミックPDFを使用しています。だから私はdynamicPDFから同じ機能が欲しいと私は両方のAPIの初心者です。

提案がありますか?このバイト配列は、JSPに転送され

PDFMerge pdfmerge = new PDFMerge(form.getTemplateFile()); 
MergeDocument mergedPDF = printTool.mergePDF(String 
.valueOf(form.getFormId()), URL); 


byte[] pdfArray = mergedPDF.draw(); 

これは私のヘルパー書くためのクラスとPDFで

+0

コードを追加してください。 –

答えて

0

---サーブレット/呼び出し側(Strutsアクション)側で

public class PDFMerge { 

    private MergeDocument document = null; 



    public PDFMerge(File template) throws Exception { 

     if (templatePdfFile == null) { 
      throw new Exception(); 
       document = new MergeDocument(template.getAbsolutePath(), new MergeOptions(true)); 
     } 


      } 

    public MergeDocument mergePDF(String pdfformid, String url, 
      ) { 

     Calendar cal = Calendar.getInstance(); 

     if (document != null) { 

           //hidden fields on PDF form 


       if (document.getForm().getFields().getFormField("url_to_submit") != null) { 
        document.getForm().getFields().getFormField("url_to_submit") 
          .setValue(url); 

       } 


       //Date fields to prepopulate before rendered on browser 

       if (document.getForm().getFields().getFormField("date.mm") != null) { 
        document 
          .getForm() 
          .getFields() 
          .getFormField("date.mm") 
          .setValue(
            String.valueOf(cal.get(Calendar.MONTH) + 1)); 

       } 

       if (document.getForm().getFields().getFormField("date.dd") != null) { 
        ..... 

       } 

       if (document.getForm().getFields().getFormField("date.yyyy") != null) { 
        .... 
       } 




      } 
     } 
       //document is drawn into byte array in servlet to send to output stream. 

     return document; 

    } 


} 

----レンダリングされる。 ボタンが正しく表示されません。

関連する問題