我正在尝试使用 itext 将 javascript 添加到 pdf 中,然后将其与另一个 pdf 合并。但最终合并的 pdf 不包含 javascript。如果 pdf 未与另一个 pdf 合并,则 javascript 工作正常。
合并代码: FileOutputStream sectionR = new FileOutputStream(RESULT);
PdfCopyFields copier = new PdfCopyFields(sectionR);
for (String curInPath : listFile) {
PdfReader reader = new PdfReader(curInPath);
copier.addDocument(reader);
}
copier.close();
我试图将 JS 添加到生成的合并 pdf 中,但它没有接受它。我猜它不可编辑。
以下是将JS添加到尚未合并的pdf的代码。
FileOutputStream section1Pdf = new FileOutputStream("newPDFSection");
PdfReader readerSection1 = new PdfReader("Existing PDF - Section 1");
PdfStamper stamperSection1 = new PdfStamper(readerSection1,section1Pdf);
stamperSection1.addJavaScript(
"var nameField = this.getField('txtOwnerCity');" + "nameField.setAction('Keystroke'," +"'forceUpperCase()');" +
"" +"function forceUpperCase(){" +
"if(!event.willCommit)event.change = " +
"event.change.toUpperCase();" +
"}");
当我尝试将 JS 添加到生成的合并 pdf 中时,它不允许我说它不再可编辑。
这就是我尝试添加的方式
FileOutputStream sectionR = new FileOutputStream(RESULT);
PdfCopyFields copier = new PdfCopyFields(sectionR);
for (String curInPath : listFile) {
PdfReader reader = new PdfReader(curInPath);
copier.addDocument(reader);
}
copier.close();
PdfReader readersectionResult = new PdfReader("result.pdf");
PdfStamper stamper = new PdfStamper(readersectionResult, new FileOutputStream("newResult.pdf"));
stamper.addJavaScript(some JS);
我得到的错误是'警告:无法设置标题。响应已经提交。
我不确定我是否在上面做,我想做的就是获取结果 pdf 的 pdfstamper 以向其中添加新的 JS。
当我尝试编辑表单提交的值时,它说不再可编辑。
AcroFields acro= 压模 .getAcroFields();
acro.setField("txtOfficerName"+officerChar,officerSO.getFullName());