Optimiser le PDF en JavaScript

Les fichiers PDF sont un format omniprésent pour le partage de documents, mais ils peuvent parfois être volumineux, ce qui entraîne des temps de chargement plus lents et des besoins de stockage accrus. L’optimisation des fichiers PDF est essentielle pour garantir une expérience utilisateur fluide, en particulier dans les applications Web. Par conséquent, dans cet article de blog, nous explorerons comment optimiser les fichiers PDF à l’aide de JavaScript.

Bibliothèque JavaScript pour optimiser le PDF

Pour l’optimisation PDF dans une application JavaScript, nous utiliserons Aspose.PDF for JavaScript. Il s’agit d’une bibliothèque puissante qui permet aux développeurs de traiter, manipuler et optimiser des fichiers PDF à l’aide de JavaScript. Commençons donc par installer la bibliothèque.

Téléchargez la bibliothèque et suivez les instructions d’installation fournies ici : Comment installer Aspose.PDF for JavaScript.

Optimiser un PDF en JavaScript

Avant de plonger dans le processus d’optimisation PDF, comprenons pourquoi il est crucial d’optimiser les fichiers PDF :

  • Temps de chargement plus rapides : les PDF optimisés se chargent plus rapidement, améliorant ainsi l’expérience utilisateur en réduisant les temps d’attente.
  • Efficacité de la bande passante : des fichiers de plus petite taille entraînent une consommation de bande passante réduite, ce qui facilite le partage et le téléchargement de PDF.
  • Espace de stockage : les PDF optimisés occupent moins d’espace de stockage, ce qui est particulièrement important lorsqu’il s’agit de traiter un grand nombre de documents.

Écrivons maintenant le script pour optimiser un fichier PDF en suivant les étapes ci-dessous.

  • Tout d’abord, sélectionnez le fichier PDF que vous devez optimiser.
  • Ensuite, créez un objet FileReader pour lire le fichier.
  • Après cela, appelez la fonction AsposePdfOptimize pour optimiser le PDF. Les paramètres de cette fonction incluent le nom du fichier PDF résultant.
  • La fonction AsposePdfOptimize renvoie un objet JSON et en utilisant json.errorCode, vous pouvez vérifier si le fichier PDF est optimisé avec succès ou non. Si le code d’erreur est 0, le PDF est optimisé sans aucun problème. Sinon, une erreur s’est produite et vous pouvez la lire à partir de json.errorText.
  • Enfin, appelez la fonction DownloadFile pour générer un lien vers le fichier PDF optimisé.

L’extrait de code suivant montre comment optimiser un fichier 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]);
};

Utilisation de Web Worker dans l’optimisation PDF

Dans la section précédente, nous avons simplement chargé un PDF, l’avons optimisé et téléchargé le PDF résultant. Utilisons maintenant un travailleur Web pour rendre le processus d’optimisation plus fluide et empêcher le blocage du thread de l’interface utilisateur. Le script suivant montre comment écrire un travailleur Web qui utilise la fonction d’optimisation PDF, que nous avons écrite dans la section précédente.

/*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;
  }

Optimiser les ressources PDF en JavaScript

Une autre méthode d’optimisation des fichiers PDF consiste à supprimer les ressources inutilisées et à réunir les ressources communes en un seul objet. Pour optimiser les ressources PDF, Aspose.PDF fournit la fonction AsposePdfOptimizeResource. L’extrait de code suivant montre comment optimiser les ressources 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]);
};

Obtenez une bibliothèque PDF JavaScript gratuite

Obtenez une licence temporaire gratuite et utilisez notre bibliothèque d’optimisation PDF JavaScript sans aucune limitation.

Conclusion

L’optimisation des fichiers PDF est cruciale pour garantir des performances et une expérience utilisateur optimales dans les applications Web. Aspose.PDF for JavaScript fournit un ensemble d’outils puissants pour optimiser efficacement les documents PDF. Dans cet article de blog, nous vous avons proposé une méthode facile à mettre en œuvre pour optimiser les fichiers PDF à l’aide de JavaScript. En utilisant cette méthode d’optimisation PDF, vous pouvez améliorer considérablement la gestion globale des documents dans vos applications Web.

Découvrez-en davantage sur notre bibliothèque PDF JavaScript dans la documentation. Si vous avez des questions, veuillez les partager avec nous via notre forum.

Voir également