PDF files are great for sharing finished documents โ but what happens when you need to get the content out of a PDF? Maybe you want to copy text from a scanned report, or pull out individual page images from a multi-page PDF. BuildPDF supports both modes of PDF extraction, entirely in your browser.
BuildPDF uses PDF.js to read your PDF's text layer and exports all readable text as a clean .txt file. Best for PDFs with selectable text (not scans).
Each page of your PDF is rendered as a high-resolution JPG image and packaged into a .zip file for download. Works with any PDF, including scanned documents.
Open buildpdf.co in your browser.
Drag and drop your .pdf file onto the converter, or click "Choose Files." BuildPDF automatically detects that it's a PDF and switches to extraction mode.
In the options panel, select either "Plain Text (.txt)" to extract the text layer, or "ZIP of Images (JPG)" to render each page as an image.
The extraction runs in your browser. Download the .txt file or .zip archive when complete.
BuildPDF extracts all text content from the PDF's text layer, page by page, separated by page markers. Mathematical symbols, special characters, and most Unicode text are supported. Table structure may not be perfectly preserved โ the output is a sequential plain-text approximation.
Each page is rendered at screen resolution to a JPG image. For a 10-page PDF, you'll receive a ZIP file containing 10 images named page-1.jpg, page-2.jpg, etc. Image quality is high by default.
BuildPDF uses PDF.js โ Mozilla's open-source, battle-tested PDF rendering library โ to process your files entirely in the browser. Understanding its capabilities helps you know when it will work brilliantly and when you'll need a different tool.
PDF.js can extract: all text stored in a PDF's text layer (characters, words, paragraphs, including Unicode and most special symbols), the visual appearance of each page rendered as a raster image, and document metadata like title and author if present in the file.
PDF.js cannot extract: text from scanned PDFs (image-only content with no text layer), vector graphics as editable vectors (they are rasterised during page rendering), embedded fonts as independent font files, form field data as a structured dataset, or digital signatures in a tamper-evident way.
The most important limitation for most users is the scanned document scenario. A PDF created by scanning physical pages is, underneath its .pdf wrapper, just a series of high-resolution images with no text layer at all. PDF.js will render these pages as images just fine โ but text extraction will return nothing, because there is literally no text to extract.
Optical Character Recognition (OCR) reads text out of images โ including scanned PDFs. It's a computationally intensive AI task requiring specialised models. BuildPDF extracts text that already exists as machine-readable content inside the PDF. For scanned PDFs that need OCR, here are genuinely useful alternatives:
Extracting text or images from a PDF you own โ your own documents, your scanned receipts, your own reports โ is entirely straightforward. However, some PDFs belong to others and may be protected by copyright or access restrictions.
Many PDFs have password protection or DRM applied. BuildPDF will not bypass password protection โ if a PDF requires a password to open, it cannot be processed without that password. If you legitimately have the password (e.g., it's your own file), enter it first in a PDF reader to unlock it, then re-save the unlocked version for extraction.
Beyond technical locks, copying significant portions of copyrighted material (a textbook chapter, a commercial report, a published article) for redistribution may infringe copyright, regardless of the technical ease of extraction. Always ensure you have the right to use extracted content in the way you intend.
BuildPDF processes one PDF at a time, but there are practical ways to handle batch extraction efficiently. For image extraction, each run produces a ZIP containing all page JPGs. If you need images from several PDFs, run the tool once per file โ each ZIP will be clearly named and self-contained.
For text extraction from multiple PDFs, extract each PDF's text separately, saving each .txt file with a descriptive name. You can then combine them in a text editor, or import them into a spreadsheet or document for further processing. This manual but fast approach beats any server-based batch tool for privacy, since every file stays local.
document.txt from three different files.
BuildPDF's extraction currently processes the entire PDF. For image extraction, you receive a ZIP with every page โ simply open the ZIP and discard the pages you don't need. For text extraction, the output .txt file includes all pages separated by page markers, so you can easily copy just the section you need.
PDF text ordering is notoriously difficult. Unlike HTML or Word documents, PDF stores text as positioned elements on a page, and reading order must be inferred. PDF.js does a good job for most Western-language documents in simple column layouts. Multi-column layouts, complex tables, and right-to-left languages may have text extracted in visual position order rather than reading order. Manual cleanup is often necessary for complex layouts.
The page images are rendered at a resolution determined by the PDF's internal page dimensions and your browser's rendering engine. For most PDFs, the output JPGs are screen-resolution images โ excellent for web use but not ideal for print. For higher-resolution images from a PDF, the most reliable approach is Adobe Acrobat's "Export to Image" feature, which lets you specify DPI output directly.
This is the scanned PDF scenario โ the file has no text layer, it's image-only content. Text extraction has nothing to work with. Solution: use Google Drive's free OCR (described above) to extract the text, or use BuildPDF's image extraction mode to get the page images and work with those instead.
JPG compression can affect colour and sharpness. Ensure you're using High (95%) in the options panel before extracting. Note that PDFs designed for screen display at 72 DPI will naturally produce lower-quality JPGs than print-quality PDFs designed at 300 DPI.
A handful of PDFs use features that PDF.js doesn't support: advanced encryption, non-standard PDF extensions, or corrupted file structures. Try opening the PDF in Adobe Reader first โ if it doesn't open there, the file may be corrupted. If it opens in Adobe Reader but not in BuildPDF, the file may use DRM or encryption that PDF.js cannot process. In that case, use Adobe Acrobat's own export tools.
Your PDF file is processed entirely within your browser using PDF.js, Mozilla's open-source PDF rendering engine. The file is never uploaded to any server. This makes BuildPDF safe for extracting sensitive content from confidential PDFs like contracts, financial statements, or medical records.
Free, private, instant. No uploads, no sign-up.
Try PDF Extractor โ