Otimize PDF em JavaScript

Os arquivos PDF são um formato onipresente para compartilhamento de documentos, mas às vezes podem ser volumosos, levando a tempos de carregamento mais lentos e maiores requisitos de armazenamento. A otimização de arquivos PDF é essencial para garantir uma experiência de usuário perfeita, principalmente em aplicativos da web. Portanto, nesta postagem do blog, exploraremos como otimizar arquivos PDF usando JavaScript.

Biblioteca JavaScript para otimizar PDF

Para otimização de PDF em um aplicativo JavaScript, usaremos Aspose.PDF for JavaScript. É uma biblioteca poderosa que permite aos desenvolvedores processar, manipular e otimizar arquivos PDF usando JavaScript. Então, vamos começar instalando a biblioteca primeiro.

Baixe a biblioteca e siga as instruções de instalação fornecidas aqui: Como instalar Aspose.PDF para JavaScript.

Otimize um PDF em JavaScript

Antes de mergulhar no processo de otimização de PDF, vamos entender por que é crucial otimizar arquivos PDF:

  • Tempos de carregamento mais rápidos: PDFs otimizados carregam mais rapidamente, melhorando a experiência do usuário ao reduzir os tempos de espera.
  • Eficiência de largura de banda: Arquivos menores resultam em consumo reduzido de largura de banda, facilitando o compartilhamento e o download de PDFs.
  • Espaço de armazenamento: PDFs otimizados ocupam menos espaço de armazenamento, o que é particularmente importante ao lidar com um grande número de documentos.

Vamos agora escrever o script para otimizar um arquivo PDF seguindo as etapas abaixo.

  • Primeiro, selecione o arquivo PDF que você precisa otimizar.
  • Em seguida, crie um objeto FileReader para ler o arquivo.
  • Depois disso, chame a função AsposePdfOptimize para otimizar o PDF. Os parâmetros desta função incluem o nome do arquivo PDF resultante.
  • A função AsposePdfOptimize retorna um objeto JSON e usando json.errorCode, você pode verificar se o arquivo PDF foi otimizado com sucesso ou não. Se o código de erro for 0, o PDF será otimizado sem problemas. Caso contrário, ocorreu um erro que você pode ler em json.errorText.
  • Por fim, chame a função DownloadFile para gerar um link para o arquivo PDF otimizado.

O trecho de código a seguir mostra como otimizar um arquivo PDF em 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]);
};

Usando Web Worker na otimização de PDF

Na seção anterior, simplesmente carregamos um PDF, otimizamos e baixamos o PDF resultante. Agora, vamos usar um web trabalhador para tornar o processo de otimização mais suave e evitar que o thread da UI seja bloqueado. O script a seguir mostra como escrever um web trabalhador que usa a função de otimização de PDF, que escrevemos na seção 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;
  }

Otimize recursos de PDF em JavaScript

Outro método de otimizar arquivos PDF é remover os recursos não utilizados e unir os recursos comuns em um único objeto. Para otimizar os recursos PDF, Aspose.PDF fornece a função AsposePdfOptimizeResource. O trecho de código a seguir demonstra como otimizar recursos PDF em 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]);
};

Obtenha gratuitamente a biblioteca JavaScript PDF

Obtenha uma licença temporária gratuita e use nossa biblioteca de otimização de PDF JavaScript sem quaisquer limitações.

Conclusão

A otimização de arquivos PDF é crucial para garantir desempenho ideal e experiência do usuário em aplicativos da web. Aspose.PDF para JavaScript fornece um conjunto poderoso de ferramentas para otimizar documentos PDF com eficiência. Nesta postagem do blog, fornecemos um método fácil de implementar para otimizar arquivos PDF usando JavaScript. Ao usar este método de otimização de PDF, você pode melhorar significativamente o gerenciamento geral de documentos em seus aplicativos da web.

Explore mais sobre nossa biblioteca JavaScript PDF em documentação. Caso você tenha alguma dúvida, compartilhe-a conosco através do nosso fórum.

Veja também