2008-10-16 25 views

Respuesta

3

Si está desarrollando en Java eche un vistazo a iText: http://www.lowagie.com/iText/ Creo que es compatible con lo que está buscando.

También hay algunas versiones .Net alrededor: http://www.ujihara.jp/iTextdotNET/en/

+0

¿Puede indicarlo en los documentos? –

+0

Aquí hay un ejemplo simple: http://itextdocs.lowagie.com/tutorial/objects/anchors/index.php Mire la sección de JavaScript. –

0

que he hecho estudiando la PDF Specifications.

Resulta que el formato de archivo PDF no es tan difícil.

Tiene una buena característica que permite modificar el documento simplemente agregando contenido nuevo al final del archivo.

Si está tratando de hacer lo mismo ... ¡no se asuste! ve y mira las especificaciones.

+0

¿Así que solo anexa flujos de objetos nuevos y actualizados seguidos de una tabla de referencia cruzada actualizada (xref) y un avance? Parece que necesitaría poder analizar las secuencias de objetos existentes y calcular los desplazamientos de bytes. –

2

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 
Cuestiones relacionadas