Created
January 13, 2025 00:32
-
-
Save reachjason/e3808b5dd78c9bac95b0ad3ab1433c90 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Create a Trusted Types policy | |
| const policy = window.trustedTypes.createPolicy('default', { | |
| createScriptURL: (url) => { | |
| // Validate the URL (you can add more checks if needed) | |
| if (url.startsWith('https://cdnjs.cloudflare.com/')) { | |
| return url; | |
| } | |
| throw new TypeError('Invalid script URL'); | |
| } | |
| }); | |
| let jspdf = document.createElement("script"); | |
| jspdf.onload = function () { | |
| 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); | |
| pdf.addPage(); | |
| } | |
| pdf.save("download.pdf"); | |
| }; | |
| // Use the Trusted Types policy to set the script URL | |
| jspdf.src = policy.createScriptURL('https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js'); | |
| document.body.appendChild(jspdf); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment