Bạn đã bao giờ rơi vào tình huống cần gấp một tài liệu PDF trên Google Drive nhưng người gửi lại chỉ cấp quyền “chỉ xem” (view-only), không cho phép tải về hay in ấn? Đây là một vấn đề khá phổ biến, gây không ít phiền toái cho công việc và học tập.

Đừng lo lắng! Trong bài viết này, Minh Đăng IT sẽ chia sẻ một thủ thuật cực kỳ hữu ích, giúp bạn có thể lưu lại những tài liệu này một cách dễ dàng chỉ với vài bước đơn giản.

Cơ chế hoạt động như thế nào?

Thực chất, phương pháp này không can thiệp trực tiếp vào hệ thống của Google. Thay vào đó, chúng ta sẽ sử dụng một đoạn mã script thông minh để thực hiện các công việc sau:

  1. Chụp ảnh màn hình: Script sẽ tự động “chụp ảnh” lại từng trang của file PDF đang hiển thị trên trình duyệt của bạn với chất lượng tốt nhất.
  2. Ghép nối thông minh: Sau khi có đầy đủ hình ảnh của các trang, script sẽ tự động ghép chúng lại theo đúng thứ tự.
  3. Xuất file PDF: Cuối cùng, nó sẽ tạo ra một file PDF hoàn chỉnh và cho phép bạn tải về máy.

Hướng dẫn chi tiết từng bước

Hãy làm theo cẩn thận 6 bước dưới đây để đảm bảo thành công nhé!

Bước 1: Mở file PDF trên Google Drive mà bạn muốn tải.

Bước 2: Ở góc trên cùng bên phải, nhấp vào menu có biểu tượng ba chấm dọc và chọn “Mở trong cửa sổ mới” (Open in new window).

Bước 3: Đây là bước quan trọng! Hãy cuộn chuột từ từ xuống cuối cùng của tài liệu. Việc này để đảm bảo tất cả các trang của file PDF đã được trình duyệt tải đầy đủ.

Bước 4: Mở công cụ lập trình của trình duyệt bằng cách nhấn phím F12 (hoặc chuột phải vào trang và chọn “Kiểm tra” / “Inspect”).

Bước 5: Trong cửa sổ vừa hiện ra, tìm và chuyển sang tab có tên là Console.

Bước 6: Copy toàn bộ đoạn mã dưới đây, dán vào tab Console và nhấn Enter.

JavaScript

(function () {
  console.log("Loading script ...");

  let script = document.createElement("script");
  script.onload = function () {
    const { jsPDF } = window.jspdf;

    // Generate a PDF from images with "blob:" sources.
    let pdf = null;
    let imgElements = document.getElementsByTagName("img");
    let validImgs = [];
    let initPDF = true;

    console.log("Scanning content ...");
    for (let i = 0; i < imgElements.length; i++) {
      let img = imgElements[i];

      let checkURLString = "blob:https://drive.google.com/";
      if (img.src.substring(0, checkURLString.length) !== checkURLString) {
        continue;
      }

      validImgs.push(img);
    }

    console.log(`${validImgs.length} content found!`);
    console.log("Generating PDF file ...");
    for (let i = 0; i < validImgs.length; i++) {
      let img = validImgs[i];
      let canvasElement = document.createElement("canvas");
      let con = canvasElement.getContext("2d");
      canvasElement.width = img.naturalWidth;
      canvasElement.height = img.naturalHeight;
      con.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight);
      let imgData = canvasElement.toDataURL();

      let orientation;
      if (img.naturalWidth > img.naturalHeight) {
        orientation = "l";
      } else {
        orientation = "p";
      }

      let pageWidth = img.naturalWidth;
      let pageHeight = img.naturalHeight;

      if (initPDF) {
        pdf = new jsPDF({
          orientation: orientation,
          unit: "px",
          format: [pageWidth, pageHeight],
        });
        initPDF = false;
      }

      if (!initPDF) {
        pdf.addImage(imgData, "PNG", 0, 0, pageWidth, pageHeight, "", "SLOW");
        if (i !== validImgs.length - 1) {
          pdf.addPage();
        }
      }

      const percentages = Math.floor(((i + 1) / validImgs.length) * 100);
      console.log(`Processing content ${percentages}%`);
    }

    let title = document.querySelector('meta[itemprop="name"]').content;
    if (title.split(".").pop() !== "pdf") {
      title = title + ".pdf";
    }

    // Download the generated PDF.
    console.log("Downloading PDF file ...");
    pdf.save(title, { returnPromise: true }).then(() => {
      document.body.removeChild(script);
      console.log("PDF downloaded!");
    });
  };

  let scriptURL = "https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js";
  script.src = scriptURL;
  document.body.appendChild(script);
})();

Bây giờ bạn chỉ cần chờ đợi một chút. Script sẽ tự động xử lý và một file PDF sẽ được tải về máy tính của bạn. Tốc độ nhanh hay chậm phụ thuộc vào số lượng trang của tài liệu.

Lưu ý quan trọng

  • Tôn trọng bản quyền: Hãy sử dụng thủ thuật này một cách có trách nhiệm, chỉ dành cho mục đích lưu trữ cá nhân và học tập. Luôn tôn trọng bản quyền và quyền sở hữu trí tuệ của tác giả tài liệu.
  • Chất lượng hình ảnh: Vì đây là phương pháp chụp lại màn hình nên chất lượng văn bản trong file PDF tải về có thể sẽ không sắc nét bằng file gốc.

Chúc các bạn thành công! Nếu gặp khó khăn trong quá trình thực hiện hoặc có bất kỳ vấn đề nào khác về máy tính, phần mềm, đừng ngần ngại liên hệ với chúng tôi!


DỊCH VỤ SỬA CHỮA & BẢO DƯỠNG MÁY TÍNH MINH ĐĂNG

Chuyên nghiệp – Tận tâm – Hiệu quả.

📞 Hotline | Zalo: 089.99.77.870

🌐 Website: https://dichvu.leminhdang.com/

📍 Địa chỉ: Hỗ trợ tận nơi tại Càng Long, Vĩnh Long và các khu vực lân cận.

Categorized in:

Thủ thuật,