1

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

我还在java中使用dynamicPDF api(第一次)来读取该PDF并用一些值预填充几个字段(例如,带有当前日期和一些url字段的日期)并将其绘制到字节数组中并发送回渲染。

但是,在渲染动态 PDF 时,我的表单变得混乱了。它没有完美地显示我使用 adobe 添加的按钮。按钮显示为没有标签,如果我点击它就会显示*。不知道为什么。

我正在使用动态 PDF 作为 FDF Merge 的替代品。因此,我希望 dynamicPDF 具有相同的功能,而且我完全是这两个 API 的初学者。

有什么建议吗?

4

1 回答 1

0

这是我写作和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 上进行渲染。它没有正确显示按钮。

于 2011-07-01T01:34:49.453 回答