Optimizar PDF en JavaScript

Los archivos PDF son un formato omnipresente para compartir documentos, pero a veces pueden ser voluminosos, lo que genera tiempos de carga más lentos y mayores requisitos de almacenamiento. La optimización de los archivos PDF es esencial para garantizar una experiencia de usuario perfecta, especialmente en aplicaciones web. Por lo tanto, en esta publicación de blog, exploraremos cómo optimizar archivos PDF usando JavaScript.

Biblioteca JavaScript para optimizar PDF

Para la optimización de PDF en una aplicación JavaScript, usaremos Aspose.PDF for JavaScript. Es una poderosa biblioteca que permite a los desarrolladores procesar, manipular y optimizar archivos PDF utilizando JavaScript. Entonces, comencemos instalando la biblioteca primero.

Descargue la biblioteca y siga las instrucciones de instalación que se proporcionan aquí: Cómo instalar Aspose.PDF for JavaScript.

Optimizar un PDF en JavaScript

Antes de profundizar en el proceso de optimización de PDF, comprendamos por qué es crucial optimizar los archivos PDF:

  • Tiempos de carga más rápidos: los archivos PDF optimizados se cargan más rápidamente, lo que mejora la experiencia del usuario al reducir los tiempos de espera.
  • Eficiencia del ancho de banda: los tamaños de archivo más pequeños resultan en un menor consumo de ancho de banda, lo que facilita compartir y descargar archivos PDF.
  • Espacio de almacenamiento: los archivos PDF optimizados ocupan menos espacio de almacenamiento, lo cual es particularmente importante cuando se trata de una gran cantidad de documentos.

Ahora escribamos el script para optimizar un archivo PDF siguiendo los pasos a continuación.

  • Primero, seleccione el archivo PDF que necesita optimizar.
  • Luego, cree un objeto FileReader para leer el archivo.
  • Después de eso, llame a la función AsposePdfOptimize para optimizar el PDF. Los parámetros de esta función incluyen el nombre del archivo PDF resultante.
  • La función AsposePdfOptimize devuelve un objeto JSON y, utilizando json.errorCode, puede comprobar si el archivo PDF está optimizado correctamente o no. Si el código de error es 0, el PDF se optimiza sin ningún problema. De lo contrario, se ha producido un error que puede leer en json.errorText.
  • Finalmente, llame a la función DownloadFile para generar un enlace al archivo PDF optimizado.

El siguiente fragmento de código muestra cómo optimizar un archivo PDF en JavaScript.

var ffileOptimize = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    
    /*optimize a PDF-file and save the "ResultOptimize.pdf"*/
    const json = AsposePdfOptimize(event.target.result, e.target.files[0].name, "ResultOptimize.pdf");
    if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
    else document.getElementById('output').textContent = json.errorText;
    
    /*make a link to download the result file*/
    DownloadFile(json.fileNameResult, "application/pdf");
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

Uso de Web Worker en la optimización de PDF

En la sección anterior, simplemente cargamos un PDF, lo optimizamos y descargamos el PDF resultante. Ahora, usemos un trabajador web para hacer que el proceso de optimización sea más fluido y evitar que se bloquee el hilo de la interfaz de usuario. El siguiente script muestra cómo escribir un trabajador web que utilice la función de optimización de PDF, que hemos escrito en la sección anterior.

/*Create Web Worker*/
const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
AsposePDFWebWorker.onerror = evt => console.log(`Error from Web Worker: ${evt.message}`);
AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent = 
  (evt.data == 'ready') ? 'loaded!' :
    (evt.data.json.errorCode == 0) ?
      `Result:\n${DownloadFile(evt.data.json.fileNameResult, "application/pdf", evt.data.params[0])}` :
      `Error: ${evt.data.json.errorText}`;

/*Event handler*/
const ffileOptimize = e => {
  const file_reader = new FileReader();
  file_reader.onload = event => {
    
    /*Optimize a PDF-file and save the "ResultOptimize.pdf" - Ask Web Worker*/
    AsposePDFWebWorker.postMessage(
      { "operation": 'AsposePdfOptimize', "params": [event.target.result, e.target.files[0].name, "ResultOptimize.pdf"] },
      [event.target.result]
    );
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

/*Make a link to download the result file*/
const DownloadFile = (filename, mime, content) => {
    mime = mime || "application/octet-stream";
    var link = document.createElement("a"); 
    link.href = URL.createObjectURL(new Blob([content], {type: mime}));
    link.download = filename;
    link.innerHTML = "Click here to download the file " + filename;
    document.body.appendChild(link); 
    document.body.appendChild(document.createElement("br"));
    return filename;
  }

Optimice los recursos PDF en JavaScript

Otro método para optimizar archivos PDF es eliminar los recursos no utilizados y unir los recursos comunes en un solo objeto. Para optimizar los recursos PDF, Aspose.PDF proporciona la función AsposePdfOptimizeResource. El siguiente fragmento de código demuestra cómo optimizar los recursos PDF en JavaScript.

var ffilePdfOptimizeResource = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    
    /*Optimize resources a PDF-file and save the "ResultPdfOptimizeResource.pdf"*/
    const json = AsposePdfOptimizeResource(event.target.result, e.target.files[0].name, "ResultPdfOptimizeResource.pdf");
    if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
    else document.getElementById('output').textContent = json.errorText;
    
    /*Make a link to download the result file*/
    DownloadFile(json.fileNameResult, "application/pdf");
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

Obtenga una biblioteca PDF de JavaScript gratuita

Obtenga una licencia temporal gratuita y utilice nuestra biblioteca de optimización de PDF de JavaScript sin ninguna limitación.

Conclusión

La optimización de los archivos PDF es crucial para garantizar un rendimiento y una experiencia de usuario óptimos en las aplicaciones web. Aspose.PDF for JavaScript proporciona un potente conjunto de herramientas para optimizar documentos PDF de manera eficiente. En esta publicación de blog, le proporcionamos un método fácil de implementar para optimizar archivos PDF utilizando JavaScript. Al utilizar este método de optimización de PDF, puede mejorar significativamente la gestión general de documentos en sus aplicaciones web.

Explore más sobre nuestra biblioteca PDF de JavaScript en documentación. En caso de que tenga alguna consulta, compártala con nosotros a través de nuestro foro.

Ver también