iText (i iText_Sharp_) są całkiem zdolne do dodania JS do istniejącego pliku PDF ... akcji strony, linków, skryptu poziomu dokumentu, ty go nazwij.
The JavaDoc can be found here.
Zostało to napisane z myślą o Javie, ale kod C# wyglądałby niemal identycznie (jeśli nie dokładnie taki sam, z wyjątkiem usuniętym w ten sposób obsługą wyjątków).
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
Czy możesz wskazać to w dokumentacji? –
Oto prosty przykład: http://itextdocs.lowagie.com/tutorial/objects/anchors/index.php Zobacz sekcję JavaScript. –