GitHub README to PDF

Markdown
Preview — Modern
Upload a Markdown file or paste contentDrag & drop a .md file here, or use the buttons below

To convert a GitHub README to PDF, paste the repository link (or owner/repo) into the box above and click Fetch README. Check the preview, click Download PDF and choose "Save as PDF". Relative image and link paths are rewritten to full GitHub addresses first, so logos, screenshots and badges still appear in the PDF. You can also paste or upload a README.md directly.

What does the output look like?

Relative paths that would break off GitHub

README.md in owner/repo
![Screenshot](docs/screen.png)

See [CONTRIBUTING](CONTRIBUTING.md).
What gets rendered
![Screenshot](https://raw.githubusercontent.com/
  owner/repo/main/docs/screen.png)

See [CONTRIBUTING](https://github.com/
  owner/repo/blob/main/CONTRIBUTING.md).

The branch is whatever the README was served from, not always main. Code blocks are left alone, so example paths inside them are not changed.

A typical README

Markdown in
# my-project

[![License: MIT](https://img.shields.io/...)](...)

```bash
npm install -g my-project
```

| Flag | Default |
|------|---------|
| --out | ./dist |
In the PDF
The heading, the badge as an image, the install
command in a highlighted code box and a bordered
table. Click Sample above to see it.

How is this different from printing the GitHub page?

Printing the repository page from your browser prints the page around the README too. This page fetches only the README Markdown, renders it with a print stylesheet and lets you choose a style, so the PDF contains the document and nothing else.

Does GitHub-flavored Markdown come through?

Tables, task lists, fenced code with syntax highlighting, footnotes, $...$ math and ```mermaid diagrams all render. Raw HTML that READMEs use for layout, such as <p align="center"> and <img width="200">, is kept; scripts and event handlers in fetched HTML are stripped. GitHub-only extras such as > [!NOTE] alert boxes and :emoji: shortcodes print as plain text.

Can I convert a README with the command line instead?

Yes, with Pandoc: pandoc README.md -o README.pdf. Its default PDF route needs a LaTeX engine installed, relative images must exist on disk next to the file, and Mermaid needs a filter. It is the better choice for many files. See Markdown to PDF for a fuller comparison.

How are tables, code, front matter and other edge cases handled?

InputWhat you get
Relative image (docs/a.png, ./a.png, /a.png)Rewritten to raw.githubusercontent.com on the README's branch
github.com/.../blob/...png image linksRewritten to the raw file so the image loads
Relative links (CONTRIBUTING.md)Rewritten to github.com so they work from the PDF
Badges (shields.io etc.)Printed as images
> [!NOTE] alerts, :emoji: codesPrinted as a plain quote and plain text
tree/<branch>/<folder> linksLoads the repository's main README, not the folder's
Private repositoryNot reachable. Paste the raw Markdown instead

Maintained by Ankit Aglawe. Last updated .

Related Tools

Need a different format? See every tool on the Markdown converter page, or go back to the MDConvert home page.

README to PDF questions

What can I paste in the GitHub repo box?
owner/repo, a repository URL like https://github.com/owner/repo, or a link to a single Markdown file (github.com/owner/repo/blob/main/docs/guide.md). A repository link loads the README GitHub shows on the repo's front page.
Why do the images show up in the PDF?
README files usually point at images with relative paths like docs/logo.png. Those only work on GitHub, so after fetching, each relative image path is rewritten to its full raw.githubusercontent.com address and relative links to their github.com address.
Does it work with private repositories?
No. The README is fetched from GitHub's public API without signing in, so only public repositories work. For a private repo, open README.md on GitHub, click Raw, copy the text and paste it into the editor.
I got a message about GitHub's limit. What happened?
GitHub allows 60 unauthenticated API requests per hour from one IP address, and loading a repository's README uses one. The limit resets within the hour. Links to a single .md file do not use the API at all.
Is anything sent to MDConvert's server?
No. Your browser fetches the README straight from GitHub, renders it and prints it. MDConvert does not see the repository name or the file.