The below is the step-by-step guide to download a protected Google drive pdf which is protected from printing or downloading.
Note: The below method will only work if pdf is accessible and is viewable and will only work for desktop/laptop and not for mobiles.
Steps to follow
- Press
F12
on keyboard or alternatively open dev tools in the browser. - Go to
console
tab from the window opened. - Copy-paste the following script into the console.
(function () {
console.log("Loading script ...");
let script = document.createElement("script");
script.onload = function () {
const { jsPDF } = window.jspdf;
// Generate a PDF from images with "blob:" sources.
let pdf = null;
let imgElements = document.getElementsByTagName("img");
let validImgs = [];
let initPDF = true;
console.log("Scanning content ...");
for (let i = 0; i < imgElements.length; i++) {
let img = imgElements[i];
let checkURLString = "blob:https://drive.google.com/";
if (img.src.substring(0, checkURLString.length) !== checkURLString) {
continue;
}
// if (!/^blob:/.test(img.src)) {
// continue;
// }
validImgs.push(img);
}
console.log(`${validImgs.length} content found!`);
console.log("Generating PDF file ...");
for (let i = 0; i < validImgs.length; i++) {
let img = validImgs[i];
let canvasElement = document.createElement("canvas");
let con = canvasElement.getContext("2d");
canvasElement.width = img.naturalWidth;
canvasElement.height = img.naturalHeight;
con.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight);
let imgData = canvasElement.toDataURL();
let orientation;
if (img.naturalWidth > img.naturalHeight) {
//console.log("Landscape");
orientation = "l";
//ratio = img.naturalWidth/img.naturalHeight
} else {
//console.log("Portrait");
orientation = "p";
//ratio = img.naturalWidth/img.naturalHeight
}
let pageWidth = img.naturalWidth;
let pageHeight = img.naturalHeight;
if (initPDF) {
pdf = new jsPDF({
orientation: orientation,
unit: "px",
format: [pageWidth, pageHeight],
});
initPDF = false;
}
if (!initPDF) {
pdf.addImage(imgData, "PNG", 0, 0, pageWidth, pageHeight, "", "SLOW");
if (i !== validImgs.length - 1) {
pdf.addPage();
}
}
const percentages = Math.floor(((i + 1) / validImgs.length) * 100);
console.log(`Processing content ${percentages}%`);
}
// check if title contains .pdf in end of the title
let title = document.querySelector('meta[itemprop="name"]').content;
if (title.split(".").pop() !== "pdf") {
title = title + ".pdf";
}
// Download the generated PDF.
console.log("Downloading PDF file ...");
pdf.save(title, { returnPromise: true }).then(() => {
document.body.removeChild(script);
console.log("PDF downloaded!");
});
};
// Load the jsPDF library using the trusted URL.
let scriptURL = "https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js";
let trustedURL;
if (window.trustedTypes && trustedTypes.createPolicy) {
const policy = trustedTypes.createPolicy("myPolicy", {
createScriptURL: (input) => {
return input;
},
});
trustedURL = policy.createScriptURL(scriptURL);
} else {
trustedURL = scriptURL;
}
script.src = trustedURL;
document.body.appendChild(script);
})();
- If console is giving any kind of warning or is unable to paste the code, try typing the following command first and then retry pasting the code
allow pasting
- After pasting and script, press
Enter
on keyboard to start the downloading process. - After the script processes the pdf, the pdf file will be automatically download.
- The downloaded pdf file can be opened and viewed as any other PDF document.
Thanks for using this method for downloading protected pdf google drive documents.
Bryan Christy