我有PDF表格,我使用adobe acrobat pro版本9在javascript中添加一些隐藏的字段,按钮和一些验证。
另外我在java中使用dynamicPDF api(第一次)来读取PDF并预先填充一些带有一些值的字段(例如日期与当前日期和一些url字段)并将其绘制到字节数组中并发送回渲染
但是,渲染动态PDF时,我的表格变得混乱。我没有使用adobe添加完美的按钮。按钮显示时没有标签,如果我点击它就会显示*
。不知道为什么。
我使用动态PDF作为FDF Merge的替代品。所以我想从dynamicPDF获得相同的功能,而且我是两个API的初学者。
有什么建议吗?
答案 0 :(得分: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 action)端----
PDFMerge pdfmerge = new PDFMerge(form.getTemplateFile());
MergeDocument mergedPDF = printTool.mergePDF(String
.valueOf(form.getFormId()), URL);
byte[] pdfArray = mergedPDF.draw();
将此字节数组转发到要呈现的JSP上。 它没有正确显示按钮。