How to download Google Drive PDF that has view-only restrictions

Hello OneHack Comrades,

Any idea how to download Google Drive PDF that has view-only restrictions??

Do you know any online tools that would make the PDF download?

Thank you in advance​:folded_hands: I really need it URGENTLY

3 Likes

https://chromewebstore.google.com/detail/document-preview-exporter/npapjbliocdhineglcjkmmmaddpgeono Try this tool

4 Likes

@Edgar Thank you, will try it :folded_hands:

1 Like

Quickest method (no install needed): Open the PDF in Google Drive’s preview, then paste one of these scripts into your browser’s DevTools console (F12 → Console):

Dedicated tool with best quality: Google-Drive-View-Only-PDF-Script-Downloader — use “Alt Method 1” which zooms in while capturing, giving the sharpest output.

Zero-effort online converters: Paste your Drive link into pdf.urlgd.com or pdf.dotool.net and download directly.

Chrome extension: Document Preview Exporter — exports view-only docs as PNG/ZIP/PDF with custom page sizes, no console needed.

Step-by-step walkthrough if you’re new to this: DEV Community guide covers the common pitfalls.

Pro tip: Before running any console script, scroll through the entire document first so all pages are rendered — otherwise you’ll get a PDF with missing/blank pages.

Will try it. Thanks

:brain: What’s actually happening here

Google Drive “view-only” PDFs aren’t real PDFs in your browser — they’re screenshots of each page loaded as images. The script below grabs all those page images, stitches them into a real PDF, and downloads it. That’s it.

:warning: The output is image-based — you get a perfect visual copy, but you can’t select/copy text from it. If you need searchable text, you’d need to run OCR on the PDF afterward.


:hammer_and_wrench: Method 1 — Console Script

Step 1 — Open the restricted PDF in Google Drive preview (the normal browser view).

Step 2 — Scroll all the way to the last page. This is the step people skip and then wonder why half the pages are missing. Google Drive only loads pages you’ve scrolled past — if you didn’t scroll to it, the script can’t see it.

:light_bulb: Slow scroll. Give each page a second to load. If the PDF is 100+ pages, zoom out first so pages load faster.

Step 3 — Open the browser console:

Browser Shortcut
Chrome / Edge / Brave F12 → click Console tab
Chrome (alternate) Ctrl + Shift + J (Windows/Linux) or Cmd + Option + J (Mac)
Firefox Ctrl + Shift + K (Windows/Linux) or Cmd + Option + K (Mac)

Step 4 — If Chrome says “Don’t paste code here” or blocks pasting — type exactly this and press Enter first:

allow pasting

That’s literally it. Just those two words. Then you can paste normally.

Step 5 — Copy the entire code block below and paste it into the console → press Enter:

(function () {
  console.log("Starting… Make sure you scrolled to the end of the PDF!");

  let script = document.createElement("script");
  script.onload = function () {
    const { jsPDF } = window.jspdf;
    if (!jsPDF) {
      console.error("jsPDF failed to load.");
      return;
    }

    console.log("jsPDF loaded. Collecting page images...");

    let pdf = null;
    let imgElements = document.querySelectorAll('img[src^="blob:https://drive.google.com/"]');
    let validImgs = Array.from(imgElements).filter(img => img.naturalWidth > 100 && img.naturalHeight > 100);

    console.log("Found " + validImgs.length + " usable page images.");

    if (validImgs.length === 0) {
      console.error("No page images found. Scroll to end again or try different zoom.");
      return;
    }

    validImgs.forEach((img, i) => {
      let canvas = document.createElement("canvas");
      canvas.width = img.naturalWidth;
      canvas.height = img.naturalHeight;
      let ctx = canvas.getContext("2d");
      ctx.drawImage(img, 0, 0);

      let imgData = canvas.toDataURL("image/png");

      let orientation = img.naturalWidth > img.naturalHeight ? "l" : "p";
      let pageWidth = img.naturalWidth;
      let pageHeight = img.naturalHeight;

      if (i === 0) {
        pdf = new jsPDF({
          orientation: orientation,
          unit: "px",
          format: [pageWidth, pageHeight]
        });
      } else {
        pdf.addPage([pageWidth, pageHeight], orientation);
      }

      pdf.addImage(imgData, "PNG", 0, 0, pageWidth, pageHeight, "", "SLOW");
      console.log("Processed page " + (i + 1) + "/" + validImgs.length);
    });

    let title = document.querySelector('meta[itemprop="name"]')?.content || document.title || "downloaded";
    if (!title.toLowerCase().endsWith(".pdf")) title += ".pdf";

    console.log("Saving PDF...");
    pdf.save(title);
    console.log("Done! Check your downloads folder.");
  };

  let url = "https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js";
  let trustedURL = url;
  if (window.trustedTypes && trustedTypes.createPolicy) {
    let policy = trustedTypes.createPolicy("forceTrusted", { createScriptURL: (s) => s });
    trustedURL = policy.createScriptURL(url);
  }
  script.src = trustedURL;
  document.body.appendChild(script);
})();

Step 6 — Wait. The console will show progress like Processed page 1/47. When it says “Done!”, check your downloads folder — the PDF is there.


:puzzle_piece: Method 2 — Chrome Extension (zero code, zero console)

If the console stuff feels intimidating, there’s a Chrome extension that does the same thing with one click:

Document Preview Exporter for Google Drive — install it, open the view-only PDF, click the extension icon, pick PDF, done. Works on Chrome, Edge, and Brave.

Still need to scroll to the end first so all pages load. Same rule applies.


:fire: Troubleshooting

Problem Fix
“0 usable page images found” You didn’t scroll far enough — go back and slow-scroll to the very last page
Pages are blurry/low-res Zoom in on Google Drive before scrolling — higher zoom = higher resolution captures
Script doesn’t run / error Make sure you typed allow pasting first (Chrome). On Firefox, pasting works by default
PDF has missing pages in the middle You scrolled too fast — pages didn’t load. Scroll again slowly, then re-run the script
“TrustedScriptURL” error The script above already handles this — if you’re using an older version of the script, grab this one instead
Huge PDF (200+ pages) takes forever Normal — each page gets converted to a PNG image. Give it a few minutes. Don’t close the tab