Last active
November 29, 2023 05:14
-
-
Save daithinh/bd97ecd70190d2653f95e7e689fde6dd to your computer and use it in GitHub Desktop.
pdf-google-drive-v2.js
This file contains 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
let jspdf = document.createElement("script"); | |
jspdf.onload = function () { | |
let pdfDocumentName = "Document-GDrive.VIP"; | |
let doc; | |
function generatePDF (){ | |
let imgTags = document.getElementsByTagName("img"); | |
let checkURLString = "blob:https://drive.google.com/"; | |
let validImgTagCounter = 0; | |
for (i = 0; i < imgTags.length; i++) { | |
if (imgTags[i].src.substring(0, checkURLString.length) === checkURLString){ | |
validImgTagCounter = validImgTagCounter + 1; | |
//console.log(imgTags[i].src); | |
let img = imgTags[i]; | |
let canvas = document.createElement('canvas'); | |
let context = canvas.getContext("2d"); | |
canvas.width = img.naturalWidth; | |
canvas.height = img.naturalHeight; | |
//console.log("Width: " + img.naturalWidth + ", Height: " + img.naturalHeight); | |
context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight); | |
let imgDataURL = canvas.toDataURL(); | |
// console.log(imgDataURL); | |
//let ratio; | |
let orientation; | |
if (img.naturalWidth > img.naturalHeight){ | |
//console.log("Landscape"); | |
orientation = "l"; | |
//ratio = img.naturalWidth/img.naturalHeight | |
}else { | |
//console.log("Portrait"); | |
orientation = "p"; | |
//ratio = img.naturalWidth/img.naturalHeight | |
} | |
let scalefactor = 1.335; | |
let pageWidth = img.naturalWidth * scalefactor; | |
let pageHeight = img.naturalHeight * scalefactor; | |
//let imagexLeft = (pageWidth - img.naturalWidth)/2; | |
//let imagexTop = (pageHeight - img.naturalHeight)/2; | |
if (validImgTagCounter === 1){ | |
doc = new jsPDF({ | |
orientation: orientation, | |
unit: "px", | |
format: [pageWidth, pageHeight], | |
}); | |
doc.addImage(imgDataURL, "PNG", 0, 0, img.naturalWidth, img.naturalHeight); | |
}else{ | |
doc.addPage([pageWidth, pageHeight] , orientation); | |
doc.addImage(imgDataURL, "PNG", 0, 0, img.naturalWidth, img.naturalHeight); | |
} | |
} | |
} | |
pdfDocumentName = pdfDocumentName + ".pdf"; | |
doc.save(pdfDocumentName); | |
} | |
let allElements = document.querySelectorAll("*"); | |
let chosenElement; | |
let heightOfScrollableElement = 0; | |
for (i = 0; i < allElements.length; i++) { | |
if ( allElements[i].scrollHeight>=allElements[i].clientHeight){ | |
if (heightOfScrollableElement < allElements[i].scrollHeight){ | |
//console.log(allElements[i]); | |
//console.log(allElements[i].scrollHeight); | |
heightOfScrollableElement = allElements[i].scrollHeight; | |
chosenElement = allElements[i]; | |
} | |
} | |
} | |
if (chosenElement.scrollHeight > chosenElement.clientHeight){ | |
console.log("Auto Scroll"); | |
let scrollDistance = Math.round(chosenElement.clientHeight/2); | |
//console.log("scrollHeight: " + chosenElement.scrollHeight); | |
//console.log("scrollDistance: " + scrollDistance); | |
//www.gdrive.vip | |
let loopCounter = 0; | |
function myLoop(remainingHeightToScroll, scrollToLocation) { | |
loopCounter = loopCounter+1; | |
console.log(loopCounter); | |
setTimeout(function() { | |
if (remainingHeightToScroll === 0){ | |
scrollToLocation = scrollDistance; | |
chosenElement.scrollTo(0, scrollToLocation); | |
remainingHeightToScroll = chosenElement.scrollHeight - scrollDistance; | |
}else{ | |
scrollToLocation = scrollToLocation + scrollDistance ; | |
chosenElement.scrollTo(0, scrollToLocation); | |
remainingHeightToScroll = remainingHeightToScroll - scrollDistance; | |
} | |
if (remainingHeightToScroll >= chosenElement.clientHeight){ | |
myLoop(remainingHeightToScroll, scrollToLocation) | |
}else{ | |
setTimeout(function() { | |
generatePDF(); | |
}, 1500) | |
} | |
}, 500) | |
} | |
myLoop(0, 0); | |
}else{ | |
console.log("No Scroll"); | |
setTimeout(function() { | |
generatePDF(); | |
}, 1500) | |
} | |
}; | |
jspdf.src = 'https://gdrive.vip/wp-content/uploads/2020/jspdf.debug.js'; | |
document.body.appendChild(jspdf); |
Bị lỗi không tải được
VM509:104 This document requires 'TrustedScriptURL' assignment. (anonymous) @ VM509:104
VM509:104 Uncaught TypeError: Failed to set the 'src' property on 'HTMLScriptElement': This document requires 'TrustedScriptURL' assignment. at :104:11
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
10 điểm cho quả code