Réparer PDF avec JavaScript via C++

Aspose.PDF pour JavaScript permet une réparation PDF de haute qualité. Le fichier PDF peut ne pas s’ouvrir pour une raison quelconque, quel que soit le programme ou le navigateur. Dans certains cas, le document peut être restauré, essayez le code suivant et voyez par vous-même.

  1. Créez un ‘FileReader’.

  2. La fonction AsposePdfRepair est exécutée.

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

  4. Ensuite, si le ‘json.errorCode’ est 0, vous pouvez obtenir des liens vers les fichiers résultants. Si le paramètre ‘json.errorCode’ n’est pas égal à 0 et, en conséquence, qu’il y aura une erreur dans votre fichier, alors l’information sur cette erreur sera contenue dans le fichier ‘json.errorText’.

  5. 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.


    var ffilePdfRepair = function (e) {
      const file_reader = new FileReader();
      file_reader.onload = (event) => {
        /*Réparer un fichier PDF et enregistrer le "ResultPdfRepair.pdf"*/
        const json = AsposePdfRepair(event.target.result, e.target.files[0].name, "ResultPdfRepair.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 résultant*/
        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énement*/
    const ffilePdfRepair = e => {
      const file_reader = new FileReader();
      file_reader.onload = event => {
        /*Réparer un fichier PDF et enregistrer le "ResultPdfRepair.pdf" - Demander au Web Worker*/
        AsposePDFWebWorker.postMessage({ "operation": 'AsposePdfRepair', "params": [event.target.result, e.target.files[0].name, "ResultPdfRepair.pdf"] }, [event.target.result]);
      };
      file_reader.readAsArrayBuffer(e.target.files[0]);
    };
  /// [Extrait de code]

    /*Créer un lien pour télécharger le fichier résultant*/
    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;
      }