簡體   English   中英

DynamicPDF api 來渲染 PDF forms 在 ZD52387880E1EA22817A72D3759213819

[英]DynamicPDF api to render PDF forms in Java

我有 PDF forms 並且我使用 adobe acrobat pro 版本 9 在 javascript 中添加了一些隱藏字段、按鈕和一些驗證。

Also I am using dynamicPDF api (first time) in java to read that PDF and pre-populate few fields with some values (eg date with current date and some url fields) and drawing it into byte array and sending back to render.

但是,在渲染動態 PDF 時,我的 forms 被搞亂了。 它沒有完美地顯示我使用 adobe 添加的按鈕。 按鈕顯示為 NO LABEL,如果我點擊它會顯示* 不知道為什么。

我正在使用 Dynamic PDF 作為 FDF Merge 的替代品。 因此,我希望 dynamicPDF 具有相同的功能,而且我完全是這兩個 API 的初學者。

有什么建議嗎?

這是我的幫手 class 寫和 PDF ---

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;

    }


}

在 servlet/caller(struts 動作)方面----

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


byte[] pdfArray = mergedPDF.draw();

這個字節數組被轉發到 JSP 以進行渲染。 它沒有正確顯示按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM