如何在PDF文件中以编程方式注入JavaScript?
没有Adobe Professional可以完成吗?
我的目标是:我想在打开PDF时立即显示打印对话框。
我知道这可以通过嵌入文档中的JavaScript代码来实现。
如果您使用Java进行开发,请查看iText:http://www.lowagie.com/iText/我认为它支持你所寻找的。
还有一些.Net版本:http://www.ujihara.jp/iTextdotNET/en/
iText(和iText_Sharp_)非常能够将JS添加到现有的PDF中。。。页面操作,链接,文档级脚本,你能想到的。
JavaDoc可以在这里找到。
这是在考虑Java的情况下编写的,但C#代码看起来几乎完全相同(如果不完全相同,则会像这样去掉异常处理)。
PdfReader myReader = new PdfReader( myFilePath ); // throws IOException
PdfStamper myStamper = new PdfStamper( myReader, new FileOutputStream(outPath) ); // throws IOE, DocumentException
// add a document script
myStamper.addJavaScript( myScriptString );
// add a page-open script, 1 is the first page, not zero0
PdfAction jsAction = PdfAction.javaScript( someScriptString );
myStamper.setPageAction( PdfWriter.PAGE_OPEN, jsAction, myStamper.getWriter(), pageNumber ); // throws PdfException (for bad first param)
PdfFormField button = PdfFormField.createButton(myWriter, PdfFormField.FF_PUSHBUTTON);
button.setWidget( myRectangle, PdfAnnotation.HIGHLIGHT_INVERT );
// the important part, adding jsAction
jsAction = PdfAction.javaScript( buttonScriptString );
button.setAdditionalActions( PdfAnnotation.AA_DOWN, jsAction ); // mouse down
myStamper.addAnnotation( pageNum, button );
myStamper.close(); // write everything out, throws DocumentException, IOE
我研究过PDF规范。
事实证明,PDF文件格式并没有那么难。
它有一个很好的功能,可以通过在文件末尾添加新内容来修改文档。
如果你想做同样的事情。。。不要害怕!去看看规格。