Skip to content

Instantly share code, notes, and snippets.

@jatubio
Created March 5, 2021 11:58
Show Gist options
  • Save jatubio/34a176fdbbb7a7d5a920c8698a7661bd to your computer and use it in GitHub Desktop.
Save jatubio/34a176fdbbb7a7d5a920c8698a7661bd to your computer and use it in GitHub Desktop.
Download Google Drive protected/view only document
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("Exported_File.pdf");
};
jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js';
document.body.appendChild(jspdf);
@00joel59
Copy link

00joel59 commented May 1, 2024

And how can I download the images?, the screenshots lower their quality a lot.

@LucasToledo88
Copy link

// Created by Snax :) let trustedURL; if (window.trustedTypes && trustedTypes.createPolicy) { const policy = trustedTypes.createPolicy('myPolicy', { createScriptURL: (input) => { return input; } }); trustedURL = policy.createScriptURL('https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js'); } else { trustedURL = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js'; }

// Load the jsPDF library using the trusted URL. let jspdf = document.createElement("script"); jspdf.onload = function() { // Generate a PDF from images with "blob:" sources. let pdf = new jsPDF(); let elements = document.getElementsByTagName("img"); for (let i = 0; i < elements.length; i++) { let img = elements[i]; if (!/^blob:/.test(img.src)) { continue; } let canvasElement = document.createElement('canvas'); let con = canvasElement.getContext("2d"); canvasElement.width = img.width; canvasElement.height = img.height; con.drawImage(img, 0, 0, img.width, img.height); let imgData = canvasElement.toDataURL("image/jpeg", 1.0); pdf.addImage(imgData, 'JPEG', 0, 0); if (i !== elements.length - 1) { pdf.addPage(); } }

// Download the generated PDF.
pdf.save("download.pdf");

}; jspdf.src = trustedURL; document.body.appendChild(jspdf); use this code :)

download its ok, but the file is empty :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment