在 JavaScript 中將 PDF 轉換為 Word

在 Web 應用程式中處理文件時,將 PDF 文件無縫轉換為 Word 文件的能力是一項寶貴的資產。此任務不僅常見,而且對於文件轉換器和編輯器、從編輯和協作到內容提取的各種應用程式也是必不可少的。在這篇文章中,我們將探討如何使用 JavaScript 將 PDF 檔案轉換為 Word DOC/DOCX 文件。

將 PDF 轉換為 Word 的 JavaScript 程式庫

對於 JavaScript 中的 PDF 到 Word 文件轉換,我們將使用 Aspose.PDF for JavaScript。它是一個綜合性庫,使開發人員能夠以程式設計方式進行 PDF 生成、操作、編輯和轉換。該程式庫的設計易於使用,並無縫整合到 JavaScript 應用程式中,使其成為 PDF 相關任務的理想選擇。

下載 該程式庫並按照此處提供的安裝說明進行操作:安裝 Aspose.PDF for JavaScript

在 JavaScript 中將 PDF 轉換為 Word DOC

使用 Aspose.PDF,您不必經歷複雜的 PDF 到 Word 轉換過程。只需載入 PDF 文件並將其儲存為 Word 格式即可。但是,我們會將資源密集型 PDF 到 DOC 轉換任務卸載給 Web Worker,以防止阻塞主 UI 執行緒。這確保了在 Web 應用程式中以使用者友好的方式下載轉換後的 Word 文件。

以下是在 JavaScript 中將 PDF 轉換為 DOC 所需執行的步驟。

  1. 建立一個 Web Worker,如以下程式碼片段所示。
/*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/msword", evt.data.params[0])}` : `Error: ${evt.data.json.errorText}`;

/*Event handler*/
const ffileToDoc = e => {
  const file_reader = new FileReader();
  file_reader.onload = event => {
    /*Convert a PDF-file to Doc and save the "ResultPDFtoDoc.doc" - Ask Web Worker*/
    AsposePDFWebWorker.postMessage({ "operation": 'AsposePdfToDoc', "params": [event.target.result, e.target.files[0].name, "ResultPDFtoDoc.doc"] }, [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;
  }
  1. 請依照下列步驟編寫將 PDF 轉換為 DOC 的程式碼。
  • 首先,選擇您要轉換的 PDF 檔案。
  • 然後,建立一個新的 FileReader 物件。
  • 呼叫AsposePdfToDoc函數將PDF轉換為Word格式。此函數也接受轉換後的 Word 檔案的名稱。
  • 接下來,如果 json.errorCode 為 0,則產生的 Word 檔案將採用您先前指定的名稱。否則,您的文件中將會出現錯誤,並且錯誤訊息將記錄在 json.errorText 檔案中。
  • 最後,DownloadFile 函數會產生一個連結來下載轉換後的 Word 檔案。

以下是使用 JavaScript 將 PDF 轉換為 Word DOC 格式的程式碼片段。

var ffileToDoc = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    /*Convert a PDF-file to Doc and save the "ResultPDFtoDoc.doc"*/
    const json = AsposePdfToDoc(event.target.result, e.target.files[0].name, "ResultPDFtoDoc.doc");
    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/msword");
  }
  file_reader.readAsArrayBuffer(e.target.files[0]);
}

在 JavaScript 中將 PDF 轉換為 DOCX

如果您需要將 PDF 轉換為 DOCX 格式,您可以按照相同的流程進行少量更改,以獲得 DOCX 格式的 Word 文件。讓我們用 JavaScript 將 PDF 轉換為 DOCX 文件。

  1. 使用下面的程式碼片段建立 Web Worker。
/*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/vnd.openxmlformats-officedocument.wordprocessingml.document", evt.data.params[0])}` : `Error: ${evt.data.json.errorText}`;

/*Event handler*/
const ffileToDocX = e => {
  const file_reader = new FileReader();
  file_reader.onload = event => {
    /*convert a PDF-file to DocX and save the "ResultPDFtoDocX.docx" - Ask Web Worker*/
    AsposePDFWebWorker.postMessage({ "operation": 'AsposePdfToDocX', "params": [event.target.result, e.target.files[0].name, "ResultPDFtoDocX.docx"] }, [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;
  }
  1. 現在,編寫將 PDF 轉換為 DOCX 的程式碼。在這裡,您將使用方法 AsposePdfToDocX 而不是 AsposePdfToDoc。
var ffileToDocX = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    /*convert a PDF-file to DocX and save the "ResultPDFtoDocX.docx"*/
    const json = AsposePdfToDocX(event.target.result, e.target.files[0].name, "ResultPDFtoDocX.docx");
    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/vnd.openxmlformats-officedocument.wordprocessingml.document");
  }
  file_reader.readAsArrayBuffer(e.target.files[0]);
}

取得免費的 JavaScript PDF 函式庫

您可以取得免費的臨時許可證並不受任何限制地使用此 JavaScript PDF 函式庫。

結論

在這篇文章中,我們探索了使用 JavaScript 將 PDF 文件轉換為 Word 文件的過程。本部落格文章中提供的步驟和程式碼片段簡化了 JavaScript 應用程式中 PDF 到 DOC 和 PDF 到 DOCX 的轉換。憑藉其簡單的整合和強大的功能,Aspose.PDF 簡化了文件操作任務,使開發人員能夠透過高效的 PDF 到 Word 轉換來增強其應用程式。

當您繼續探索 Aspose.PDF for JavaScript 的功能時,您將發現豐富的功能來增強您的文件管理解決方案。讓我們了解您使用 Aspose.PDF 的體驗或透過我們的 論壇 分享您的問題。