iText (y iText_Sharp_) son bastante capaces de agregar JS a un PDF existente ... acciones de página, enlaces, secuencia de comandos de nivel de documento, lo que sea.
The JavaDoc can be found here.
Esto fue escrito con Java en mente, pero el código C# se vería casi idéntico (si no exactamente igual, con el manejo de excepciones eliminado de esta manera).
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
¿Puede indicarlo en los documentos? –
Aquí hay un ejemplo simple: http://itextdocs.lowagie.com/tutorial/objects/anchors/index.php Mire la sección de JavaScript. –