Skip to content

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.

Notifications You must be signed in to change notification settings

thang1834/PDF-Downloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

PDF Downloader - Google Drive

📋 Mô tả

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ính năng

  • ✅ 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

🚀 Cách sử dụng

Cách 1: Chạy trực tiếp trên Console

  1. Mở trang Google Drive chứa PDF bạn muốn tải
  2. Đảm bảo PDF đã được mở và hiển thị đầy đủ (scroll qua tất cả các trang)
  3. Mở Developer Tools (F12 hoặc Ctrl+Shift+I)
  4. Chuyển sang tab Console
  5. Copy toàn bộ nội dung file pdf.js và paste vào console
  6. Nhấn Enter để chạy
  7. File PDF sẽ tự động được tải về với tên download.pdf

Cách 2: Tạo Bookmarklet (Snippet tái sử dụng)

  1. Copy toàn bộ nội dung file pdf.js
  2. Tạo bookmark mới trong trình duyệt
  3. Đặt tên: "Download PDF from Drive"
  4. Trong phần URL, paste code sau (thay thế nội dung pdf.js bằ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);})();
  1. Khi cần tải PDF, chỉ cần click vào bookmark này

Cách 3: Sử dụng như User Script (Tampermonkey/Greasemonkey)

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
})();

📝 Lưu ý quan trọng

  1. Đả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ề.

  2. 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.

  3. Kiểm tra Console: Mở Console để xem log và đảm bảo script đã tìm thấy ảnh hợp lệ.

  4. 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.

  5. 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.

🔧 Yêu cầu

  • 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

🛠️ Cách hoạt động

  1. Script tạo một thẻ <script> để tải thư viện jsPDF từ CDN
  2. 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

📦 Thư viện sử dụng

  • 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

⚠️ Giới hạn

  • 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

📄 License

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.

🤝 Đóng góp

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.

📞 Hỗ trợ

Nếu gặp vấn đề, vui lòng:

  1. Kiểm tra Console để xem lỗi
  2. Đảm bảo PDF đã được load đầy đủ
  3. 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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published