Agregar JavaScript a archivos PDF en C# .NET

PDF es un formato de documento rico en términos de versatilidad y características. Una de las principales ventajas de PDF es su diseño uniforme en plataformas heterogéneas. Además, tiene la capacidad de mostrarse en aplicaciones de escritorio y navegadores web al mismo tiempo. Esta es la razón por la que los archivos PDF son capaces de ejecutar JavaScript. En este artículo, demostraremos cómo agregar o quitar JavaScript en archivos PDF usando C#.

C# .NET API para agregar o eliminar JavaScript en PDF

Aspose.PDF for .NET está diseñado para realizar la generación y manipulación de PDF dentro de las aplicaciones .NET. La API le permite crear, procesar y convertir sin problemas archivos PDF de diseños simples y complejos. Puede descargar los archivos binarios de la API o instalarlos mediante NuGet.

PM> Install-Package Aspose.PDF

Agregar JavaScript a archivos PDF en C#

Los archivos PDF son compatibles con Acrobat JavaScript, que se basa en el núcleo de JavaScript versión 1.5 de ISO-16262, anteriormente conocido como ECMAScript. Es un lenguaje de secuencias de comandos orientado a objetos desarrollado por Netscape Communications. Antes de proceder a agregar JavaScript a los archivos PDF, echemos un vistazo a las diferencias entre Acrobat JavaScript y HTML JavaScript que se usa en los navegadores web.

  • Acrobat JavaScript no tiene acceso a objetos dentro de una página HTML. De manera similar, HTML JavaScript no puede acceder a objetos dentro de un archivo PDF.
  • HTML JavaScript es capaz de manipular objetos como Window. Sin embargo, Acrobat JavaScript no puede acceder a estos objetos en particular, pero puede manipular objetos específicos de PDF.

Los siguientes son los pasos para agregar JavaScript a un archivo PDF en C#.

El siguiente ejemplo de código muestra cómo agregar JavaScript a un PDF.

// Cargar un archivo PDF
Document doc = new Document("input.pdf");

// Crear una instancia de JavascriptAction con la declaración de JavaScript deseada
JavascriptAction javaScript = new JavascriptAction("this.print({bUI:true,bSilent:false,bShrinkToFit:true});");

// Asigne el objeto JavascriptAction a la acción deseada del documento
doc.OpenAction = javaScript;

// Agregar JavaScript a nivel de página
doc.Pages[2].Actions.OnOpen = new JavascriptAction("app.alert('page 1 opened')");
doc.Pages[2].Actions.OnClose = new JavascriptAction("app.alert('page 1 closed')");

// Guardar documento PDF
doc.Save("output.pdf");

Agregar JavaScript de nivel de documento en un PDF en C#

También puede agregar JavaScript al nivel del documento usando la propiedad Document.JavaScript. Los siguientes son los pasos para agregar JavaScript al nivel del documento en C#.

El siguiente ejemplo de código muestra cómo agregar JavaScript a un PDF en C#.

// Cargar o crear archivo PDF
Document doc = new Document();

// Añadir página
doc.Pages.Add();

// Agregar JavaScript a nivel de documento
doc.JavaScript["func1"] = "function func1() { hello(); }";
doc.JavaScript["func2"] = "function func2() { hello(); }";

// Guardar documento PDF
doc.Save("output.pdf");

Eliminar JavaScript de un PDF en C#

Los siguientes son los pasos para eliminar JavaScript de un PDF en C#.

El siguiente ejemplo de código muestra cómo quitar JavaScript de un PDF en C#.

// Cargar documento
Document doc1 = new Document("input.pdf");

// Obtener e imprimir claves de JavaScript
IList keys = (System.Collections.IList)doc1.JavaScript.Keys;
foreach (string key in keys)
{
    Console.WriteLine(key + " ==> " + doc1.JavaScript[key]);
}

// Eliminar JavaScript usando la clave
doc1.JavaScript.Remove("func1");

// Guardar documento PDF
doc1.Save("output.pdf");

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para usar Aspose.PDF for .NET sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a agregar JavaScript a archivos PDF en C#. Además, ha visto cómo eliminar JavaScript de un PDF mediante programación. Además, puede explorar más sobre la API de PDF de .NET utilizando la documentación. En caso de que tenga alguna pregunta o consulta, puede contactarnos a través de nuestro foro.

Ver también