首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java语言渲染DynamicPDF表单的PDF

用Java语言渲染DynamicPDF表单的PDF
EN

Stack Overflow用户
提问于 2011-07-01 08:03:26
回答 1查看 708关注 0票数 1

我有PDF表单,我使用adobe acrobat pro version9添加了一些隐藏字段、按钮和javascript中的一些验证。

另外,我在java中使用dynamicPDF api (第一次)来读取该PDF,并预先填充一些字段的一些值(例如日期与当前日期和一些网址字段),并绘制成字节数组,并发送回渲染。

但是,当渲染动态PDF时,我的表单变得一团糟。它没有完美地显示我用adobe添加的按钮。显示的按钮上没有标签,如果我单击它,上面会显示*。不知道为什么。

我使用动态PDF作为FDF Merge的替代。所以我想从dynamicPDF获得相同的功能,并且我完全是两个API的初学者。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-01 09:34:49

这是我要写的助手类和PDF

代码语言:javascript
复制
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/调用者(struts操作)端

代码语言:javascript
复制
PDFMerge pdfmerge = new PDFMerge(form.getTemplateFile());
MergeDocument mergedPDF = printTool.mergePDF(String
.valueOf(form.getFormId()), URL);


byte[] pdfArray = mergedPDF.draw();

这个字节数组被转发到JSP上进行呈现。它不能正确显示按钮。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6542353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档