Tuesday, February 19, 2019

Downloading view only protected PDF from Google Drive


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.