Platform Guide

How to save a Medium article as a clean PDF

Medium articles are great to read online but terrible to save. Medium's built-in export is limited to your own posts, and Ctrl+P gives you the full UI chrome — sidebar navigation, clap buttons, follow prompts, recommended articles, and sticky banners. Pretty PDF extracts just the article.

Free — 3 PDFs per month. No credit card required.

Why Medium articles are difficult to save as PDF

Medium is designed as a reading platform, not a publishing format. Every design decision optimizes for on-screen engagement: keeping you scrolling, clicking claps, following authors, and opening the next recommended article. That design works beautifully in the browser. It works terribly when you try to capture the content as a static document.

The most immediate problem is UI clutter. A typical Medium article page includes a sticky top navigation bar, the author's profile card with a follow button, a floating clap/bookmark bar that follows you as you scroll, a "sign up for more" interstitial that appears mid-article for non-members, a "recommended reading" section at the bottom, related articles from the publication, and a footer with Medium's own navigation. When you press Ctrl+P, most of this comes along for the ride. Your clean article becomes a five-page PDF where two pages are navigation and promotional elements.

Images present a subtler challenge. Medium lazy-loads images as you scroll — they are not present in the initial HTML payload. The platform uses its own CDN (miro.medium.com) with multiple resolution variants, and the actual image URL is constructed dynamically based on viewport width. A naive print or save operation may capture placeholder elements instead of the actual images, or grab low-resolution thumbnails instead of the full-size versions the author uploaded.

Custom domains add another layer of complexity. Many of Medium's most popular publications — Better Programming, Towards Data Science, The Startup, OneZero, and hundreds of others — run on their own custom domains. When you visit betterprogramming.pub or towardsdatascience.com, you are reading a Medium article, but the URL gives no indication of that. Any tool that relies on checking the domain name against "medium.com" will miss these entirely. The content is identical to a medium.com article, served by Medium's infrastructure, using Medium's templates and JavaScript — but the domain is different.

Member-only content creates a visibility boundary. Medium's paywall shows non-members a preview (typically the first few paragraphs) with a "become a member" prompt covering the rest. The full article HTML is not present in the page source for non-members — Medium does not simply hide it with CSS. This means no tool can extract content you are not authorized to see, but the tool does need to correctly handle the boundary between visible and gated content without producing broken output.

Pull quotes, embedded content, and code blocks each have their own markup patterns. Medium uses custom HTML structures for pull quotes (large, emphasized block quotations), Gist embeds (code blocks served from GitHub's Gist platform), embedded tweets, and YouTube videos. A generic HTML-to-PDF converter treats these as opaque blocks or strips them entirely, losing content that may be central to the article.

Medium parser

How Pretty PDF handles Medium articles

A dedicated parser that understands Medium's page structure and extracts exactly the content you want.

Custom Domain Detection

Pretty PDF does not rely on the URL to identify Medium articles. It checks for the <meta name="generator" content="Medium"> tag that Medium injects into every page it serves. Whether the article is on medium.com, betterprogramming.pub, or a completely custom domain, it is detected and parsed correctly.

Article Extraction

The parser strips Medium's entire UI shell — navigation bar, clap buttons, follow prompts, recommended articles, sign-up interstitials, and footer — leaving only the article title, subtitle, author byline, publication date, and the full article body with all its formatting intact.

Paywall-Visible Content

Pretty PDF extracts whatever content is visible in your browser. If you are a paying Medium member, you get the full article. If you are viewing a paywalled article as a non-member, you get the preview content Medium shows you. Pretty PDF does not bypass paywalls or access content you cannot already see.

Image Handling

Medium serves images through its own CDN with dynamically constructed URLs and multiple resolution variants. Pretty PDF resolves these CDN URLs to their full-resolution versions and embeds them directly in the PDF. Lazy-loaded images that have been rendered in your browser are captured at the quality the author intended.

Template Styling

All five Pretty PDF templates — Clean, Minimal, Corporate, Academic, and Dark Mode — work with Medium's content structure. Each template applies professional typography with embedded fonts, proper heading hierarchy, and spacing tuned for long-form article content. Choose the template that fits how you will use the PDF.

Step by step

How to save a Medium article as PDF

From any Medium article to a clean PDF in under ten seconds.

1

Open any Medium article

Navigate to the article you want to save. This works on medium.com, any custom Medium domain (like betterprogramming.pub or towardsdatascience.com), and member-only articles you have access to.

2

Click the Pretty PDF icon

Click the extension icon in your browser toolbar. Pretty PDF automatically detects that the page is a Medium article — even on custom domains — and activates the dedicated Medium parser.

3

Pick a template

Select from five professionally designed templates. Clean and Minimal work well for long-form essays. Academic is ideal for research-oriented articles. Corporate suits articles you need to share with colleagues.

4

Generate and download

Click Generate PDF. The server extracts the article content, strips all Medium UI elements, resolves images, applies your template with embedded fonts, and returns a clean PDF ready to read, print, or share.

Works on custom Medium domains

One of Medium's most popular features for publications is custom domain support. A publication can use its own domain name — betterprogramming.pub, towardsdatascience.com, entrepreneurshandbook.co, or any other domain — while Medium handles all the hosting, content delivery, and reader experience. The publication gets brand identity through its own URL; Medium provides the infrastructure.

This creates a problem for most PDF tools. If a tool identifies Medium articles by checking whether the URL contains "medium.com", it will miss every article published on a custom domain. And there are thousands of them. Publications like Better Programming, Towards Data Science, The Startup, Level Up Coding, JavaScript in Plain English, and UX Collective all use custom domains. Some of Medium's most widely-read content lives on these domains.

Pretty PDF solves this by not relying on the URL at all for Medium detection. Instead, it checks the page's HTML for the <meta name="generator" content="Medium"> tag. Medium injects this tag into every page it serves, regardless of the domain name. It is part of Medium's server-side template and cannot be removed by publication owners. This means Pretty PDF correctly identifies and parses Medium articles on any domain — medium.com, a publication's custom domain, or even a personal blog that uses Medium as its CMS.

No configuration is needed on your end. You do not need to tell Pretty PDF which domains are Medium publications. The detection is fully automatic: visit any page, click the extension, and if the page is powered by Medium, the Medium parser activates. If it is not a Medium page, the generic extraction pipeline handles it instead. The process is seamless either way.

Frequently asked questions

Pretty PDF extracts whatever content is visible in your browser when you click the extension. If you are a paying Medium member and can see the full article, the extension captures all of it — title, subtitle, body text, images, code blocks, and pull quotes. If you are not a member and the article is behind a paywall, Pretty PDF captures the preview content that Medium shows you, which is typically the first few paragraphs. Pretty PDF does not bypass paywalls, circumvent authentication, or access content you cannot already see. It converts what is on your screen into a clean PDF, nothing more.
Yes, and this is one of Pretty PDF's key advantages. Many popular publications — Better Programming, Towards Data Science, The Startup, Level Up Coding, and hundreds of others — use their own custom domains while running on Medium's platform. Pretty PDF detects these automatically by looking for the <meta name="generator" content="Medium"> tag that Medium injects into every page it serves, regardless of the domain name. No configuration is needed. If the page is powered by Medium, Pretty PDF recognizes it.
If your PDF contains Medium UI elements like clap buttons, follow prompts, the sidebar, or recommended articles, you are most likely using your browser's built-in print function (Ctrl+P or Cmd+P) rather than Pretty PDF. The browser's print engine captures everything on the page, including all of Medium's interactive elements. Pretty PDF's dedicated Medium parser specifically identifies and removes these UI elements, extracting only the article content. Make sure you are clicking the Pretty PDF extension icon in your toolbar rather than using the browser's print shortcut.
Yes. Medium uses custom HTML markup for code blocks (both inline code and fenced code blocks, including content from GitHub Gist embeds) and for its distinctive pull quotes with oversized styling. Pretty PDF's parser identifies these elements and preserves their semantic structure in the PDF. Code blocks are rendered in JetBrains Mono with proper indentation and line wrapping. Pull quotes are styled as emphasized block quotations. Embedded Gist content that has been rendered in the page is captured as properly formatted code blocks.
Currently, Pretty PDF includes all images that are part of the article content by default. Images are resolved from Medium's CDN (miro.medium.com) and embedded in the PDF at their full resolution, preserving the visual experience the author intended. If you need a text-only version of the article, you can use the Pretty PDF API (available on Pro+ plans) with custom HTML preprocessing to strip image tags before conversion. For most users, the images are an integral part of the article and are included to maintain the complete reading experience.

Save your next Medium article as a clean PDF

Free tier, no credit card. 3 PDFs per month with all templates included.

Install Free Extension