Read the complete article on how to convert PDF files to Word DOC/DOCX in JavaScript: https://blog.aspose.com/pdf/convert-pdf-to-word-javascript/
Created
December 15, 2023 05:58
-
-
Save aspose-com-gists/483f3d1499639402e8b666abf39bfb99 to your computer and use it in GitHub Desktop.
Convert PDF to Word in JavaScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*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; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*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]); | |
}; | |
/// [Code snippet] | |
/*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; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
it does not copy with the format?