Skip to main content
Hero Light

What is PdfItDown?

PdfItDown is a Rust-based tool and library that converts text-based files, images, office documents, and markup files to PDF. It is built on top of markdown2pdf, office2pdf, and image crates to carry out fast, reliable conversions. PdfItDown is applicable to the following file formats:
  • Markdown (.md)
  • HTML (.html, .htm)
  • PowerPoint (.pptx)
  • Word (.docx)
  • Excel (.xlsx)
  • Text-based formats (.txt, .csv, .xml, .json, and more)
  • Image files (.png, .jpg, .jpeg, .webp, .tiff, .avif)
  • PDF (pass-through)

Setting up

Rust CLI

To set up PdfItDown, you need a working Rust toolchain.
cargo install pdfitdown

Python

uv add pdfitdown

Node.js / TypeScript

npm install @cle-does-things/pdfitdown

WebAssembly (browser)

npm install @cle-does-things/pdfitdown-wasm

Choose how to use it

Once you have PdfItDown set up, you can choose how to use it:

Rust

Adapt PdfItDown to your pipelines by coding it yourself!

Python

Use PdfItDown from Python with PyO3 bindings.

TypeScript / Node.js

Native Node.js bindings via NAPI-RS.

WebAssembly

Run PdfItDown directly in the browser with WASM.

In the CLI

If you’re a terminal lover, this is perfect for you :)

Python Legacy

Looking for the legacy Python package? Find it on the v3 branch.