iText 5 PdfAction.javaScript()在添加PushButtonField后在Adobe Acrobat中不起作用

问题描述 投票:1回答:1
  • 这里我正在使用iText(v-5.5.13)Java 8按钮添加到PDF文件中]。
  • 使用此按钮,我将操作设置为一个JavaScript警报的按钮
  • 按钮已成功添加,但是当我单击PDF中的按钮时按钮的操作未调用,这表示JavaScript警报不起作用
  • 如果我将removeXfa()添加到AcroFields,则此工作正常,但是PDF表单字段的[[验证
  • 无法工作,这就是为什么我无法删除XFA的原因看起来像这样[[在Adobe Acrobat中不起作用,但是在
  • Foxit Reader中,它可以正常工作
  • ] >>实际上,我希望使用API​​调用而不是警报,但是这里不调用警报
  • 这是我的Java代码

import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.GrayColor; import com.itextpdf.text.pdf.PdfAction; import com.itextpdf.text.pdf.PdfAnnotation; import com.itextpdf.text.pdf.PdfFormField; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper; import com.itextpdf.text.pdf.PushbuttonField; public class AddField { public static final String SRC = "E:/projects/PDF_Manipulation/SRC/abc.pdf"; public static final String DEST = "E:/projects/PDF_Manipulation/DEST/abc-added-button.pdf"; public static void main(String[] args) throws DocumentException, IOException { File file = new File(DEST); file.getParentFile().mkdirs(); new AddField().manipulatePdf(SRC, DEST); } public void manipulatePdf(String src, String dest) throws DocumentException, IOException { PdfReader reader = new PdfReader(src); PdfReader.unethicalreading = true; reader.removeUsageRights(); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); /* If I add removeXfa() to AcroFields then this working but validation of PDF form field is not working thats why i can't remove XFA */ /* final AcroFields formx = stamper.getAcroFields(); formx.removeXfa(); formx.setGenerateAppearances(true); */ PushbuttonField button = new PushbuttonField(stamper.getWriter(), new Rectangle(36, 700, 72, 730), "SAVE"); button.setText("SAVE"); button.setBackgroundColor(new GrayColor(0.75f)); button.setVisibility(PushbuttonField.VISIBLE_BUT_DOES_NOT_PRINT); PdfFormField submit = button.getField(); Rectangle rect = new Rectangle(550, 5, 580, 20); submit.setWidget(rect, PdfAnnotation.HIGHLIGHT_INVERT); String exportPdfJavascript = "app.alert('Testing........')"; submit.setAction(PdfAction.javaScript(exportPdfJavascript, stamper.getWriter())); stamper.addAnnotation(submit, 1); stamper.close(); } }

这是我的build.gradle文件

apply plugin: 'java-library' repositories { jcenter() } dependencies { // https://mvnrepository.com/artifact/com.itextpdf/itext7-core compile group: 'com.itextpdf', name: 'itextpdf', version: '5.5.13' // https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.52' // https://mvnrepository.com/artifact/net.sf.dozer/dozer compile group: 'net.sf.dozer', name: 'dozer', version: '5.5.1' compile group: 'com', name: 'itextpdf', version: 'pdfxfa' }

这里我正在使用iText(v-5.5.13)和Java 8将按钮添加到PDF文件中。使用此按钮,我将操作设置为Button,它是一个JavaScript警报按钮...
javascript java itext adobe acrobat
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.