Script này tự động tìm tất cả các ảnh blob trên trang Google Drive (khi xem PDF), chuyển đổi chúng thành file PDF và tải về máy. Đây là giải pháp hữu ích khi bạn muốn tải PDF từ Google Drive mà không có quyền tải trực tiếp.
- ✅ Tự động tìm và xử lý tất cả ảnh blob trên trang
- ✅ Chuyển đổi ảnh thành PDF với chất lượng cao
- ✅ Tự động tải file PDF về máy
- ✅ Hỗ trợ PDF nhiều trang
- ✅ Tương thích với Trusted Types (bảo mật trình duyệt)
- ✅ Có thể chạy trực tiếp trên console hoặc tạo bookmarklet
- Mở trang Google Drive chứa PDF bạn muốn tải
- Đảm bảo PDF đã được mở và hiển thị đầy đủ (scroll qua tất cả các trang)
- Mở Developer Tools (F12 hoặc Ctrl+Shift+I)
- Chuyển sang tab Console
- Copy toàn bộ nội dung file
pdf.jsvà paste vào console - Nhấn Enter để chạy
- File PDF sẽ tự động được tải về với tên
download.pdf
- Copy toàn bộ nội dung file
pdf.js - Tạo bookmark mới trong trình duyệt
- Đặt tên: "Download PDF from Drive"
- Trong phần URL, paste code sau (thay thế nội dung
pdf.jsbằng code đã minify):
javascript:(function(){let jspdf=document.createElement("script");jspdf.onload=function(){let pdf=new jsPDF();let elements=document.getElementsByTagName("img");let imgArray=Array.from(elements);let validImages=imgArray.filter(img=>{return img instanceof HTMLImageElement&&/^blob:/.test(img.src);});console.log(`Tìm thấy ${validImages.length} ảnh hợp lệ`);validImages.forEach((img,index)=>{console.log(`Đang xử lý ảnh ${index+1}/${validImages.length}`,img);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);if(index<validImages.length-1){pdf.addPage();}});pdf.save("download.pdf");};const scriptUrl="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js";if(window.trustedTypes&&window.trustedTypes.createPolicy){try{const policy=window.trustedTypes.createPolicy('default',{createScriptURL:(url)=>url});jspdf.src=policy.createScriptURL(scriptUrl);}catch(e){jspdf.setAttribute('src',scriptUrl);}}else{jspdf.setAttribute('src',scriptUrl);}document.body.appendChild(jspdf);})();- Khi cần tải PDF, chỉ cần click vào bookmark này
Bạn có thể tạo một user script để tự động chạy trên các trang Google Drive:
// ==UserScript==
// @name Google Drive PDF Downloader
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Tải PDF từ Google Drive
// @author You
// @match https://drive.google.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Paste nội dung pdf.js vào đây
})();-
Đảm bảo PDF đã load đầy đủ: Trước khi chạy script, hãy scroll qua tất cả các trang của PDF để đảm bảo tất cả ảnh đã được tải về.
-
Chờ script load: Script cần thời gian để tải thư viện jsPDF từ CDN. Hãy đợi vài giây sau khi chạy.
-
Kiểm tra Console: Mở Console để xem log và đảm bảo script đã tìm thấy ảnh hợp lệ.
-
Quyền truy cập: Script chỉ hoạt động với các PDF mà bạn có quyền xem trên Google Drive.
-
Chất lượng ảnh: Script sử dụng chất lượng JPEG 100% để đảm bảo chất lượng PDF tốt nhất.
- Trình duyệt hiện đại hỗ trợ ES6+ (Chrome, Firefox, Edge, Safari)
- Kết nối internet (để tải thư viện jsPDF từ CDN)
- Quyền truy cập vào PDF trên Google Drive
- Script tạo một thẻ
<script>để tải thư viện jsPDF từ CDN - Khi jsPDF đã load xong, script sẽ:
- Tìm tất cả các thẻ
<img>trên trang - Lọc chỉ lấy các ảnh có URL dạng
blob:(ảnh từ Google Drive) - Vẽ từng ảnh lên canvas
- Chuyển đổi canvas thành dữ liệu base64
- Thêm ảnh vào PDF (mỗi ảnh = 1 trang)
- Tự động tải file PDF về máy
- Tìm tất cả các thẻ
- jsPDF (v1.5.3): Thư viện JavaScript để tạo và xử lý file PDF
- CDN:
https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js
- CDN:
- Chỉ hoạt động với PDF được hiển thị dưới dạng ảnh trên Google Drive
- Phụ thuộc vào tốc độ tải ảnh của Google Drive
- File PDF tải về có thể có kích thước lớn nếu PDF gốc có nhiều trang chất lượng cao
Dự án này được phát hành dưới dạng mã nguồn mở, tự do sử dụng và chỉnh sửa.
Mọi đóng góp và đề xuất đều được chào đón! Hãy tạo issue hoặc pull request nếu bạn có ý tưởng cải thiện.
Nếu gặp vấn đề, vui lòng:
- Kiểm tra Console để xem lỗi
- Đảm bảo PDF đã được load đầy đủ
- Thử refresh trang và chạy lại script
Lưu ý: Dự án này chỉ dùng cho mục đích giáo dục và cá nhân. Hãy tuân thủ các điều khoản sử dụng của Google Drive và bản quyền của các file PDF.