Convert

Convert DOCX to PDF on Mac (and Keep the Layout)

By the Smol team9 min read

Open the DOCX in Pages, then choose File → Export To → PDF. It is free and already on your Mac. For a whole folder, install LibreOffice and run soffice --headless --convert-to pdf --outdir ./out *.docx: twelve files took 3.52 seconds in our test.

What can go wrong is the font. A DOCX does not contain its typefaces; it names them. Ours named Calibri and Cambria, and macOS ships neither. Whether your PDF looks like the Word document depends on what the converter puts in their place, and that answer differs by tool in ways you can measure.

Which way should you convert DOCX to PDF on a Mac?

Pick by what you have and how many files there are.

Your situationUse thisCost
One file, nothing installedPages: File → Export To → PDFFree
Word is installedWord: File → Save As, File Format: PDFFree with Word
Any app already shows it correctlyCommand-P → PDF → Save as PDFFree
A folder of files, or a scriptsoffice --headless --convert-to pdf *.docxFree
A folder, and the PDFs must also be compressedLibreOffice above, then Smol for the PDFs$29 once for Smol

Four of the five rows cost nothing, and that is the honest answer for most readers.

How do you convert Word to PDF on a Mac without Word?

Use Pages or the print dialog. Both are already installed, and neither is the route the Terminal tutorials suggest.

Pages. Right-click the file, choose Open With → Pages, then File → Export To → PDF, pick an image quality, and save. For a single document this is the correct answer and it costs nothing. Pages will warn you about anything it changed on import, which is more than most converters do.

The print dialog. Press ⌘P in any app that can print, open the PDF dropdown at the bottom left, and choose Save as PDF. It uses Quartz and it renders exactly what the app on screen renders, so it is the most faithful route when the app already displays the document correctly.

Word, if you have it. File → Save As, set File Format to PDF, save. The PDF is made on the machine that wrote the document, so the fonts are right.

How do you convert DOCX to PDF in the Terminal on a Mac?

Use LibreOffice’s soffice. The built-in textutil cannot write PDF, which is the recommendation that gets copied around:

$ textutil -convert pdf contract.docx
Invalid output format.

Exit code 1. textutil writes txt, rtf, rtfd, html, doc, docx, odt, wordml and webarchive. PDF is not on the list and never has been. With LibreOffice installed (free), one file is:

/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to pdf contract.docx

The PDF lands in the current folder. Add --outdir ./out to put it elsewhere. If soffice is already on your PATH, the short name works too.

What textutil can do is feed a plain-text PDF route that is entirely built in:

textutil -convert txt -output plain.txt contract.docx
cupsfilter plain.txt > contract.pdf

That produced a valid 25,511-byte one-page PDF stamped Producer: macOS Version 27.0 (Build 26A428) Quartz PDFContext. It also threw away every heading, every font and the whole layout, and collapsed two pages into one. Useful for archiving text, useless for sending a contract. Note also that cupsfilter will not take HTML on macOS 27: it answers No filter to convert from text/html to application/pdf, so the intermediate-HTML variant of this trick is dead.

How do the routes compare on speed and file size?

The same 4,719-byte two-page test document went through every route available on a stock Mac plus one install.

RouteInstalled?TimePDF bytesLayout kept?
Pages, Export To → PDFYesnot measured—Yes, with font substitution
Print dialog → PDF → Save as PDFYesnot measured—Yes, from any printable app
textutil -convert pdfYes—refusesNo such output format
textutil + cupsfilterYesunder 1 s25,511No — plain text only
soffice --headless --convert-to pdfNo3.22 s29,350Yes
Smol, convert to pdfNo5,067 ms29,350Yes — same engine

The last two rows produced the same file. That is not a coincidence and it is worth being direct about: Smol’s Office conversion is LibreOffice-backed. Both PDFs were 29,350 bytes, two pages, with Producer: LibreOffice 26.2.3.2 (AARCH64) and Creator: Writer in the metadata and identical embedded font subsets. A byte comparison found the first difference at byte 19,887, the creation timestamp.

It also means Smol needs LibreOffice to be installed. On a Mac, Smol does not ship its own copy: it uses the one in your Applications folder, and if there is none it stops and asks you to install LibreOffice, which is free. Images, video, audio and PDFs need nothing extra.

Why does the layout shift when you convert DOCX to PDF?

Because line breaks are decided at render time from the metrics of the font that is actually available, and the font named in your DOCX usually is not. Microsoft’s defaults — Calibri, and since 2024 Aptos — do not ship with macOS. Every converter therefore substitutes, and they do not substitute alike.

We made four copies of the same document, changed only the body font named inside it, and read back which typeface each PDF actually embedded:

Named in the DOCXmacOS would pickLibreOffice embeddedPDF bytes
CalibriVerdanaCarlito29,350
Cambria (headings)Times New RomanCaladea29,350
AptosVerdanaLiberation Serif32,147
Segoe UIVerdanaLiberation Serif32,147
Helvetica (installed)HelveticaHelvetica32,199

Read the first two rows carefully, because they are good news. Carlito and Caladea are metric-compatible clones of Calibri and Cambria: every glyph occupies the same advance width as the original, so lines break in the same places and page counts hold. LibreOffice bundles them precisely so Word documents survive. The typeface is not Calibri, but the layout is Calibri’s layout.

The third row is the failure. Aptos has no metric-compatible clone, so LibreOffice fell all the way back to Liberation Serif — a serif face standing in for a sans-serif one. Your headings stay sans, your body text turns into something Times-shaped, and every line break moves. If you have a document written in the current Word default and the PDF came out looking oddly old-fashioned, that is what happened.

How do you stop the fonts from substituting?

In rough order of how well they work.

  • Export the PDF from the machine that wrote the document. If it was written in Word on Windows with Aptos installed, the PDF made there is correct by definition. A conversion on another machine is always a re-render.
  • Install the font. Calibri and Cambria come with Microsoft Office for Mac; Aptos comes with Microsoft 365. Once present, they are embedded as themselves — our Helvetica control proves the mechanism, coming back as CAAAAA+Helvetica rather than a stand-in.
  • Embed the fonts in the DOCX before you send it. Word’s Save → Embed fonts in the file option carries the outlines inside the document, so the converter has nothing to guess. Most licences permit embedding for viewing.
  • Design in fonts that exist everywhere. Helvetica, Times New Roman, Arial, Georgia and Verdana are on every Mac and every Windows machine. A contract template in Georgia will never surprise you.
  • Or send the DOCX and stop converting. If the recipient is going to edit it, a PDF is the wrong deliverable anyway.

One thing that does not help: converting twice, or via ODT, or through a web service. Every one of those is another render with another substitution table.

How do you batch convert DOCX to PDF on a Mac?

Give LibreOffice the whole folder in one command. The free route wins on raw speed, and it wins by a lot. Twelve copies of the test document, three ways:

RouteTotal timePer file
soffice, all 12 files in one call3.52 s0.29 s
soffice, called once per file in a loop22.44 s1.87 s
Smol, all 12 in one job40.43 s3.37 s

The gap between the first two rows is the lesson most shell scripts get wrong. LibreOffice pays its startup cost once per invocation, so for f in *.docx; do soffice …; done is 6.4× slower than handing it the whole glob:

soffice --headless --convert-to pdf --outdir ./out *.docx

Smol was the slowest of the three at 40.43 seconds for twelve files. It buys you a Finder Quick Action, a watched folder, and a single drop target that also takes spreadsheets, presentations, images and video without you choosing a filter. It does not buy throughput. If throughput is the whole problem, use the command above.

For a repeatable pipeline there is another option: Smol ships an MCP server, so Claude Code, Codex and Google Antigravity can drive the conversion directly as a tool call. That matters when the conversion is one step inside a larger job an agent is already running (gather the documents, convert, compress the results, file them) rather than something you are running by hand.

When is Smol worth it for DOCX to PDF?

Rarely, for conversion alone. Pages is already installed, it is free, and for one document it is the shortest path there is. LibreOffice is free, and since it is the same engine producing the same bytes, paying for a wrapper around it only makes sense if you want the wrapper.

Where the wrapper earns its keep:

  • Mixed folders. DOCX, XLSX, PPTX, images and video in one drop, one output setting. Document output covers pdf docx odt rtf txt html; the full format reference is here. Note there is no .pages output.
  • Right-click in Finder. A Quick Action for people who will never open a Terminal.
  • Converting and compressing in one tool. If the PDFs also have to shrink, or the same folder holds photos, video and audio that need compressing, one app covers it. That is the case this page is narrow about.

If your real problem is that the PDF came out too big for an email or an upload portal, conversion is the wrong place to look. See how to compress a PDF on Mac, what to do when a PDF is too big to upload, compressing a PDF to 1 MB, or keeping email attachments small. Smol is $29 once for one Mac, with no subscription. There is no free trial and purchases are not refundable.

Going the other way, spreadsheets rather than documents, has its own traps: XLSX to CSV loses more than you expect.

How this was measured

MacBook Pro (Mac14,9), Apple M2 Pro, 10 cores, 16 GB, macOS 26A428. LibreOffice 26.2.3.2 (AARCH64), Smol 1.0.34. Fonts read back with pdffonts, metadata with pdfinfo and exiftool, substitution predictions with fc-match. Timings from /usr/bin/time -p, wall-clock real; Smol’s figures are its own reported job durations.

The test document was built for this article, not taken from anywhere: an HTML file was run through textutil -convert docx and then its word/document.xml was edited so the body runs name Calibri and the heading runs name Cambria. Worth recording because it is a fidelity finding in itself — textutil flattened every font-family in the source HTML to “Times” and dropped the HTML table entirely. Pages and the print dialog were described but not timed, because neither can be driven headlessly. Every fixture was deleted afterwards.

Frequently asked questions

How do I convert DOCX to PDF on a Mac without Word?

Open it in Pages, which is already installed, then File → Export To → PDF. Or press Command-P in any app that can open the file and choose Save as PDF from the PDF dropdown. If you have LibreOffice, soffice --headless --convert-to pdf file.docx does it from the Terminal in about three seconds.

Can textutil convert DOCX to PDF?

No. Running textutil -convert pdf prints "Invalid output format." and exits 1. Its supported outputs are txt, rtf, rtfd, html, doc, docx, odt, wordml and webarchive. You can chain textutil -convert txt into cupsfilter to get a PDF, but that produces plain text with the layout removed.

Why does my PDF look different from the Word document?

The DOCX names fonts rather than containing them, and Calibri, Cambria and Aptos do not ship with macOS. LibreOffice substitutes Carlito for Calibri and Caladea for Cambria, which are metric-compatible so the layout holds. Aptos has no clone and fell back to Liberation Serif, a serif face, which moves every line break.

How can I tell which fonts my PDF actually used?

Run pdffonts output.pdf. It lists every embedded font with its name and whether it is embedded. If you wrote the document in Calibri and pdffonts reports Carlito, the metrics match and the layout is intact. If it reports LiberationSerif, the text has been re-flowed in a different typeface.

What is the fastest way to convert a folder of DOCX files to PDF?

Pass them all to LibreOffice in one invocation: soffice --headless --convert-to pdf --outdir ./out *.docx. Twelve files took 3.52 seconds that way versus 22.44 seconds calling soffice once per file in a loop, because the suite pays its startup cost per invocation rather than per document.

How do I convert Word to PDF on a Mac if I have Word?

In Word, choose File → Save As, set File Format to PDF, and save. The PDF is made on the machine that wrote the document, so the fonts are the ones you designed with. Every other converter has to substitute fonts it does not have, which is where layouts shift.

How do I convert DOCX to PDF in the Terminal on a Mac?

Install LibreOffice, then run soffice --headless --convert-to pdf file.docx. If soffice is not on your PATH, call it as /Applications/LibreOffice.app/Contents/MacOS/soffice. The built-in textutil cannot do it: textutil -convert pdf prints "Invalid output format." and exits 1.

The PDF is too big after converting. How do I shrink it?

Converting does not shrink a PDF, so compress it as a separate step. Smol has five PDF presets, from Tiny to Original, and the guide on compressing a PDF on Mac covers free options too. Results depend on how the PDF was made, so check the output before sending.

Keep reading