This is how one can download PDF that is protected in GDrive. This converts pages to jpg images.
Step by step:
Open the document in Google Docs
Scroll to the bottom of the document, so all the pages are present
Open Developer Tools and the Console tab
Paste the code below (and hit enter)
let jspdf = document.createElement("script");
jspdf.onload = function () {
let pdf = new jsPDF();
let elements = document.getElementsByTagName("img");
for (let i in elements) {
let img = elements[i];
console.log("add img ", img);
if (!/^blob:/.test(img.src)) {
console.log("invalid src");
continue;
}
let can = document.createElement('canvas');
let con = can.getContext("2d");
can.width = img.width;
can.height = img.height;
con.drawImage(img, 0, 0);
let imgData = can.toDataURL("image/jpeg", 1.0);
pdf.addImage(imgData, 'JPEG', 0, 0);
pdf.addPage();
}
pdf.save("download.pdf");
};
jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js';
document.body.appendChild(jspdf);
Now the PDF should be downloaded
What it does? It iterates trough the document checking for images (Google Drive stores pages as images) then writes it’s contents to a PDF.
Technically, it works. But every pdf page is only 1/4 of the original's size.
ReplyDeleteI had the same issue. I resolved it zooming out the document before downloading and it worked.
DeleteRead the docs. That's ok
ReplyDeleteOpen the pdf in Google Docs
ReplyDeletecannot Open the document in Google Docs
ReplyDeletejust change url from drive.google.com/...... to docs.google.com/....
DeleteWorked for me!
ReplyDeleteit works really perfect on my computer
ReplyDeletemy doc has 564 pages, but it only downloading 50 pages, that is random 50.. do i have to adjust anything in the code?
ReplyDeleteI'm having the same issue! Would love any help on this problem.
Deletelet all the pages load first. verify that every page is loaded. it will grab only loaded pages, pages that are not loaded will be skipped
Deletelet all the pages load first. verify that every page is loaded. it will grab only loaded pages, pages that are not loaded will be skipped
Deletetry to use upload option maybe that will help but i guess google has solved that issue
ReplyDeleteand there should be a more esay way i gues but currently only js coding helps
ReplyDeleteCannot open file in google docs
ReplyDeletejust change url from drive.google.com/...... to docs.google.com/.... and reload page.
Deletedoes this code sends message to the file onwer or does file onwer gets notified that the file has been downloaded ??
ReplyDeleteNo. This processing is happening in browser(client side) and the file owner doesn't know anything about the download.
DeleteThe quality become worst,,, any ways to increase the quality?
ReplyDeleteUse this tool instead it has the ability to adjust the resolution:
Deletehttps://softwebtuts.blogspot.com/2020/02/download-locked-pdf-files-from-google.html
Is this possible in android, please reply
ReplyDelete