Optimiser PDF en utilisant Aspose.PDF pour JavaScript via C++

Optimiser le document PDF

La boîte à outils d’Aspose.PDF pour JavaScript via C++ vous permet d’optimiser le contenu d’un PDF pour le Web.

L’optimisation, ou la linéarisation pour le Web, se réfère au processus de rendre un fichier PDF adapté à la navigation en ligne à l’aide d’un navigateur web. Pour optimiser un fichier pour l’affichage web :

  1. Sélectionnez un fichier PDF à optimiser.

  2. Créez un ‘FileReader’.

  3. La fonction AsposePdfOptimize est exécutée.

  4. Le nom du fichier résultant est défini, dans cet exemple “ResultOptimize.pdf”.

  5. Ensuite, si le ‘json.errorCode’ est égal à 0, alors votre DownloadFile est donné le nom que vous avez spécifié plus tôt. Si le paramètre ‘json.errorCode’ n’est pas égal à 0 et, en conséquence, il y aura une erreur dans votre fichier, alors l’information sur une telle erreur sera contenue dans le fichier ‘json.errorText’.

  6. En conséquence, la fonction DownloadFile génère un lien et vous permet de télécharger le fichier résultant sur le système d’exploitation de l’utilisateur.

Le code suivant montre comment optimiser un document PDF.


  var ffileOptimize = function (e) {
    const file_reader = new FileReader();
    file_reader.onload = (event) => {
      /*optimiser un fichier PDF et enregistrer le "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;
      /*créer un lien pour télécharger le fichier de résultat*/
      DownloadFile(json.fileNameResult, "application/pdf");
    };
    file_reader.readAsArrayBuffer(e.target.files[0]);
  };

Utilisation des Web Workers


    /*Créer un Web Worker*/
    const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
    AsposePDFWebWorker.onerror = evt => console.log(`Erreur du Web Worker : ${evt.message}`);
    AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent = 
      (evt.data == 'ready') ? 'chargé!' :
        (evt.data.json.errorCode == 0) ?
          `Résultat:\n${DownloadFile(evt.data.json.fileNameResult, "application/pdf", evt.data.params[0])}` :
          `Erreur : ${evt.data.json.errorText}`;

    /*Gestionnaire d'événements*/
    const ffileOptimize = e => {
      const file_reader = new FileReader();
      file_reader.onload = event => {
        /*Optimiser un fichier PDF et enregistrer le "ResultOptimize.pdf" - Demander au 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]);
    };

    /*Créer un lien pour télécharger le fichier résultat*/
    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 = "Cliquez ici pour télécharger le fichier " + filename;
        document.body.appendChild(link); 
        document.body.appendChild(document.createElement("br"));
        return filename;
      }