Sunday 20 August 2023

How to download protected/view only files from google drive ?

 Sometimes you may have faced a situation like your friends or teachers has given you pdf, google docs, google sheets or video files with google drive links and when you open it you can preview the content of those files but when you try to download you will not get any download, copy, or print button because google has intentionally created those files with no download or print feature.


In general, these types of files are view-only or protected google drive files. Suppose you like download those files and save them locally then without a hack you cannot achieve. Don't worry guys I will help you. In this article, I will be explaining to you how to download protected view-only files from google drive.


Warning: For educational purposes only.

Steps to Download protected/view-only pdf files from google drive?

1. Open or Preview Any view-only or protected files from google drive.

2. Open Developer Console.

   If you are previewing in Google Chrome or Firefox

     Press Shift Ctrl J ( on Windows / Linux) or Option ⌘  (on Mac)

   If you are previewing in Microsoft Edge 

     Press Shift Ctrl + I 

   If you are previewing in Apple Safari

     Press Option ⌘ C

Then you will find yourself inside the developer tools.

3  Navigate to the "Console" tab.

4  Paste below code and press 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, img.width, img.height);

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);

5. Now, the pdf file start to downloads.

Note that it may take a long time for downloading if the size of the pdf is large because each page in the pdf is generated in the form of an image. Also, it doesn't guarantee the content quality of pdf remains the same.

Technical Concept:

On-page load each Image tag on the page is search, and 
 
if the image is not found then continue finding the Image tag on the next page of the pdf.
 
Else if found: then with the help of Canvas those images are created with the drawImage() function and here we are creating images in JPEG format and later these images are added back to pdf instance by addImage() function. After that, with the help of addPage() new page is created and the same repeats until reaching the end of the page and finally pdf is downloaded.
 
And this is all possible by the use of the jsPDF library which is provided by Cloudflare. Actually, this jsPDF library is Javascript open-source library for generating PDF files.
 

No comments:

Post a Comment