Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式在PDF文件中插入JavaScript?_Javascript_Pdf - Fatal编程技术网

如何以编程方式在PDF文件中插入JavaScript?

如何以编程方式在PDF文件中插入JavaScript?,javascript,pdf,Javascript,Pdf,如何以编程方式在PDF文件中插入JavaScript 没有AdobeProfessional,它可以完成吗 我的目标是:当我打开PDF时,我想立即显示打印对话框 我知道这可以通过文档中嵌入的JavaScript代码来实现。如果您使用Java开发,请查看iText: 我认为它支持你正在寻找的东西 还有一些.Net版本:我已经研究过了 事实证明,PDF文件格式并没有那么难 它有一个很好的特性,可以通过在文件末尾添加新内容来修改文档 如果你想做同样的事情。。。不要惊慌失措!去看看说明书。iText(

如何以编程方式在PDF文件中插入JavaScript

没有AdobeProfessional,它可以完成吗


我的目标是:当我打开PDF时,我想立即显示打印对话框


我知道这可以通过文档中嵌入的JavaScript代码来实现。

如果您使用Java开发,请查看iText: 我认为它支持你正在寻找的东西

还有一些.Net版本:

我已经研究过了

事实证明,PDF文件格式并没有那么难

它有一个很好的特性,可以通过在文件末尾添加新内容来修改文档

如果你想做同样的事情。。。不要惊慌失措!去看看说明书。

iText(和iText\u Sharp\ux)完全可以将JS添加到现有的PDF中。。。页面操作、链接、文档级脚本,由您命名

这是用Java编写的,但是C#代码看起来几乎相同(如果不是完全相同,那么异常处理就是这样剥离的)


这里有一个简单的例子:看看JavaScript部分,那么您只需添加新的和更新的对象流,然后是更新的交叉引用表(xref)和尾部?似乎您需要能够解析现有的对象流并计算字节偏移量。
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