Steps to reproduce:
- Open the view only pdf document in google docs.
- Zoom out the page to 50% and scroll down to the bottom of the pdf so that all pages
are present. - Open Developer Tools on separate window and choose the Console tab.
- Paste the following 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);
- PDF should start downloading automatically, after some time(depend upon the size of PDF).
What it does? It iterates through the document checking for images (Google Drive stores pages as images) then writes it’s contents to a PDF.