PDF to Word Converter Free | Convert PDF to DOCX Online

📄 File and Document Free Forever

PDF to Word Converter

Extract the text from a PDF into a real, editable .docx file. Headings are detected automatically from font size, and password protected PDFs are supported. Runs entirely in your browser.

1 · Upload PDF
📃

Click or drop a PDF

Text-based PDFs · processed on your device, never uploaded

2 · Options
About This Tool

How this PDF to Word converter turns positioned text back into paragraphs

PDF, as defined by ISO 32000, records text as individually positioned glyphs on a fixed page canvas. There is no paragraph object, no sentence boundary, nothing marking where one thought ends and the next begins. Word’s .docx format, which is OOXML under ECMA-376, is the opposite: it is fundamentally a tree of paragraph and run elements. Converting from one to the other means inferring structure that the source format never stored in the first place.

This tool reads the source PDF with pdf.js, Mozilla’s PDF renderer, and builds the output document with docx, a JavaScript library that writes real OOXML packages. Both libraries run in your browser tab. The file is never sent anywhere. Everything from opening the PDF to producing the final .docx blob happens locally.

From glyph positions to paragraphs

The extraction pipeline runs the same core steps whether you’re converting one page or fifty.

Step 1 Line grouping pdf.js’s getTextContent() hands back every glyph run with a transform matrix. Because PDF’s coordinate origin is the bottom left of the page, the fifth value in that matrix is the Y baseline, and fragments within roughly a third of a text-height of each other on that axis are merged into one line.
Step 2 Word spacing repair Within a line, fragments are sorted left to right, and a space is inserted between two fragments only when the horizontal gap between them exceeds a quarter of the text height. This recovers natural word spacing from a format that sometimes places each word as a separate positioned run with no space character at all.
Step 3 Paragraph detection In Smart mode, a new paragraph starts whenever the vertical gap between two consecutive lines is more than about 1.55 times the line height, or the font size changes noticeably, which usually marks a heading. Otherwise the line is folded into the paragraph above it.
Step 4 Hyphenation repair When a line being merged into a paragraph ends in a lowercase letter followed by a hyphen, the tool assumes it is a hyphenated word broken across the line wrap, strips the hyphen, and joins the next line directly onto it instead of inserting a space.
// paragraph break detection, simplified from the tool source var gap = lines[i – 1].y – line.y; var newParagraph = !current || gap > Math.max(line.h, lines[i – 1].h) * 1.55 || Math.abs(line.h – current.h) > 2.5; if (newParagraph) { current = { text: line.text, h: line.h }; } else if (/[a-z]-$/.test(current.text)) { // repair a hyphenated line break current.text = current.text.slice(0, -1) + line.text; }

Conversion options and what they change

OptionEffect on output
Page rangeSame syntax as a print dialog, e.g. 1-3, 7, limiting which pages get extracted
Paragraph modeSmart merges wrapped lines into paragraphs; Line-by-line keeps every source line as its own paragraph
Preserve page breaksInserts a real docx.PageBreak() element wherever a new source page begins
Keep approximate sizesMaps each line’s PDF font height in points to a Word run size in half-points, the unit OOXML expects, clamped between 14 and 72 half-points
This is text extraction, not layout reconstruction. Multi-column PDFs, tables, and image-heavy pages will not come out looking like the source, because the tool reconstructs reading order from raw coordinates, not from column or table objects that do not exist in the PDF format. It is built to recover clean, editable body text, not to clone a page’s visual design.

Two limits to know before you start

Scanned PDFs return nothing

A page that is a photographed or scanned image has no embedded text layer for getTextContent() to read. The tool checks the character count on page one and shows a warning if it looks suspiciously low, since that usually means the source needs OCR before conversion, not a different setting here.

Legacy .doc is not supported

This is a PDF reader, not a Word writer for the old binary format. Output is always modern OOXML .docx, which every version of Word since 2007, along with Google Docs and LibreOffice, opens natively.

pdf.js text layer extraction Line and paragraph heuristics docx.js OOXML generation

PDF structure and tooling

  • ISO 32000-2, the PDF specification defining the text-showing operators and coordinate system this tool reads.
  • pdf.js documentation, the renderer supplying every glyph’s position, height and font data.
  • ECMA-376, the Office Open XML standard that defines the .docx package this tool writes.
  • docx.js documentation, the library used to build paragraphs, runs, page breaks and the final document package.

Editing jobs this unlocks

Pulling editable text out of a contract or report that only exists as a PDF, recovering a manuscript or article for further editing, converting an old scanned then OCR’d PDF into a document you can actually revise, and lifting the body copy out of a form letter template so it can be updated in Word going forward. Anywhere the source content is locked inside a PDF and the actual need is editable text, not a pixel perfect replica of the page.

Common Questions

FAQ: PDF to Word Converter

No, this tool extracts the text content and reconstructs paragraph breaks based on line position, but it does not preserve exact fonts, colors, images, tables, multi-column layouts, or precise positioning from the original PDF. It’s best suited for getting text-heavy content (reports, articles, letters, contracts) into an editable format quickly, expect to do some manual formatting cleanup afterward for anything beyond plain paragraphs.

PDFs can contain either real, selectable text or a scanned image of a page (essentially a photograph of text) with no underlying text data at all. If a PDF page is a scanned image, there is no text for pdf.js to extract, since the words only exist as pixels, not as characters. Converting scanned documents to editable text requires OCR (optical character recognition), which is a different technology this tool doesn’t currently include.

Not with this tool as-is, since it extracts existing text data rather than recognizing text within images. If your PDF was created by scanning a paper document, look for a dedicated OCR tool, some PDF readers and online services include OCR specifically for this purpose, which analyzes the image pixels to guess the characters present.

Yes, the tool constructs a genuine, valid .docx file following the real Office Open XML format that Word, Google Docs, LibreOffice, and Apple Pages all use and understand, it is not a renamed text file. It contains standard Word paragraphs that you can immediately select, edit, format, and save like any other Word document.

No, both the text extraction (via pdf.js) and the Word document construction (via JSZip) happen entirely in your browser using JavaScript; your PDF’s content is never transmitted anywhere. This also means the tool works without an internet connection once the page and its libraries have loaded.

PDF files don’t always store text in reading order or with explicit space characters between every word, sometimes spacing is achieved purely through positioning rather than actual space characters in the underlying data. The extraction logic makes a best effort to insert spaces based on line grouping, but unusual PDF encodings, multi-column layouts, or tables can occasionally produce text in an unexpected order or with missing spaces that need manual correction.

No, encrypted or password-protected PDFs can’t be read by the browser-based extraction library. You’ll need to remove the password protection first, using Adobe Acrobat, an online PDF unlock tool, or the software that created the PDF, before uploading it here.

There’s no hard page limit built into the tool, since everything runs locally in your browser’s memory rather than through a server upload quota, but very long documents (hundreds of pages) will take longer to process and may be slower to preview and scroll through than shorter ones.

Privacy Overview

Cookies let this site remember your preferences and show us which tools people actually use. Full detail sits in our Privacy Policy.