WeasyPrint
Open-source Python library that turns HTML and CSS into PDF documents.
Jobs Convert
Since 2011
Operated by CourtBouillon
Where your files are processed
No server involved
A Python package and its command line, running in your own process. There is no service and no account, so templates and data never leave the machine generating the document. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.
A Python package that runs in your own process, plus a command-line entry point. There is no service in the path and no account, so templates and data never leave the machine generating the document. The URL fetching it does for images or stylesheets is the caller's configuration rather than a vendor service.
What it does
WeasyPrint renders HTML and CSS into a PDF, which makes it the open-source answer to the same job the commercial typesetting engines do: you write a template in the web technologies you already know and get a printable document out — invoices, statements, tickets, reports, book interiors. It installs as a Python package and is driven from Python or from a command line. It is developed by the people who also sell support and template work around it, so the software is free and the expertise is the product.
Best for: Python teams that need to generate PDFs from HTML they already have, without paying per document or sending anything to a service, and anyone producing repetitive business documents where CSS is a better layout language than a PDF drawing API. It is the strongest open-source option in this index for template-driven generation.
Worth knowing: It is not a browser and does not pretend to be: it implements the parts of CSS that make sense for paged output, and a stylesheet that relies on browser-specific behaviour or on JavaScript will not render the way you expect — the vendor's own samples exist partly to show what the print-oriented subset can do. It also depends on native libraries rather than being pure Python, so installation is heavier than pip alone on some platforms, and that is a deployment consideration in containers. The project is small and the commercial support around it is per-month consulting rather than an SLA product, with three published tiers that are explicitly unavailable in Canada and the United States; a team that needs a support contract rather than occasional help should read those terms carefully. And the success figures on the site — millions of downloads and thousands of stars — are popularity, not a measure of how well it renders a difficult document.
Details, and where each comes from
Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.
- Versions covered
- Self-hosted
- Website
- weasyprint.org
- Requires an account
- Not applicable
- Watermark on the free tier
- Not verified
- Maximum file size
- Not verified
- Batch processing
- Yes
- Data residency
- Self-hosted
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- BSD-3-Clause
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Command line
- Last availability check
- Responded in 401 ms 16 October 2026
Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.
What the redaction verdict rests on
From the vendor's own documentation, read 22 September 2026. Not tested by us.
“WeasyPrint is a smart solution helping web developers to create PDF documents. It's free and open source software that can be easily plugged to your applications and websites and turns simple HTML pages into gorgeous: Statistical reports, Invoices, Tickets, html print”
What that does not establish: Recorded as `none` on absence, and for the same structural reason as Prince: this is a generator. It creates a PDF from HTML and CSS and never opens an existing one, so there is no document for a redaction feature to act on. What it does not establish: that a document produced by WeasyPrint is safe to share. A template renders whatever data it is given, and a generator is precisely the tool that will print a field you did not mean to include.
What the vendor says
Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.
-
“WeasyPrint is a smart solution helping web developers to create PDF documents. It's free and open source software that can be easily plugged to your applications and websites.”
Checked by us — the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01. This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- f798b20d097136b9e2f9f9f145b152fe607d41898ddfba4e9c4705fb7657424a
How we checked: Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
-
“15 years of experience”
Checked by us — the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01. This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- f798b20d097136b9e2f9f9f145b152fe607d41898ddfba4e9c4705fb7657424a
How we checked: Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.
Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.
Related reading
- Which PDF tools keep your file on your machine — what we count as processing on your own device.
- Open source PDF tools, and what their licences require — what open source does and does not tell you.