WeasyPrint
WeasyPrint is free, open-source software for web developers who need to create PDF documents from HTML pages.
What WeasyPrint is
WeasyPrint is free, open-source software for web developers who need to create PDF documents from HTML pages. Its Python library can render an HTML object to a PDF file with HTML.write_pdf(), while its command-line interface supports PDF options including PDF/A, PDF/UA, and PDF/X variants. Inputs include HTML, CSS, local files, URLs, file objects, HTML strings, raster images, and SVG. The maker’s sample documents include reports, invoices, tickets, books, letters, and posters. Documentation provides installation instructions for Linux, macOS, and Windows and describes use as a Python library. Community-maintained Docker images and an AWS Lambda layer are also listed, and WeasyPrint supports self-hosted deployment and fillable form creation. The default HTTP client does not support cookies or authentication, though a custom URL fetcher can be used. Documentation warns that untrusted HTML or CSS may cause security problems. Version 70.0 requires Python 3.10 or later and Pango 1.44 or later, among other dependencies. Kozea created and develops WeasyPrint; CourtBouillon offers professional assistance with use, configuration, integration, bug fixes, new features, and templating.
Good
- Free and open source.
- Supports PDF/A, PDF/UA, and PDF/X options.
- Accepts HTML, CSS, images, and SVG inputs.
- Available for Linux, macOS, and Windows.
- Supports fillable form creation.
Watch out
- Default HTTP client does not support cookies or authentication.
- Untrusted HTML or CSS may cause security problems.
- Version 70.0 requires Python 3.10 or later and Pango 1.44 or later.
Who it suits
WeasyPrint suits web developers who need to generate PDFs from HTML and related inputs. It may also suit teams that want a Python library, command-line options, or self-hosted deployment.
Verdict
WeasyPrint offers several ways to turn HTML-based content into PDFs, with platform installation guidance and multiple deployment options. Its HTTP and security caveats matter when handling authenticated resources or untrusted input.
Plans and prices
From WeasyPrint's own pricing page, checked 7 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open source | Free | Free and open source software |
| Basic consulting | €150 a year | 1 topic per month · Reply within 1 working day · Mail only · Not available in Canada and USA · Annual billing; prices exclude taxes |
| Essential consulting | €350 a year | 3 topics per month · Reply within 1 working day · Mail and 30-minute video call per topic · Not available in Canada and USA · Annual billing; prices exclude taxes |
| Premium consulting | €550 a year | 5 topics per month · Reply within 1 working day · Mail and 30-minute video call per topic · Not available in Canada and USA · Annual billing; prices exclude taxes |
The facts
Each one read from WeasyPrint's own pages, with the date it was checked.
What it does
- Creator and maintainer
- WeasyPrint was created and developed by Kozea, while CourtBouillon provides professional support, maintenance, and community management.checked 7 Oct 2026
- Dependencies
- WeasyPrint 70.0 requires Python 3.10 or later and Pango 1.44 or later, among other dependencies.checked 7 Oct 2026
- Integrations
- The documentation describes use as a Python library and lists community-maintained Docker images and an AWS Lambda layer.checked 7 Oct 2026
- Intended users
- The maker describes WeasyPrint as a solution for web developers and shows document examples including statistical reports and invoices.checked 7 Oct 2026
- Notable limit
- The default HTTP client does not support cookies or authentication, though a custom URL fetcher can be used.checked 7 Oct 2026
- Output examples
- The maker shows reports, invoices, tickets, books, letters, and posters as sample documents.checked 7 Oct 2026
- PDF options
- The command-line interface supports PDF variants including PDF/A, PDF/UA, and PDF/X options.checked 7 Oct 2026
- Purpose
- WeasyPrint is free and open source software that helps web developers create PDF documents from HTML pages.checked 7 Oct 2026
- Python API
- The Python library can render an HTML object to a PDF file with HTML.write_pdf().checked 7 Oct 2026
- Security
- The documentation warns that using WeasyPrint with untrusted HTML or CSS may cause security problems.checked 7 Oct 2026
- Support
- CourtBouillon offers professional assistance with WeasyPrint use, configuration, integration, bug fixes, new features, and templating.checked 7 Oct 2026
Where it runs
- Platform support
- The documentation gives installation instructions for Linux, macOS, and Windows.checked 7 Oct 2026
The full review of WeasyPrint
WeasyPrint is a free, open-source PDF engine for developers who already work with HTML, CSS, and Python. It is best suited to teams that want document generation inside their own applications or infrastructure, rather than a hosted conversion service. The trade-off is operational: you must manage native dependencies, protect the rendering boundary, and handle authenticated resources yourself.
Overview
WeasyPrint converts web-oriented content into documents including reports, invoices, tickets, books, letters, and posters. Its input range covers HTML strings, file objects, local files, URLs, raster images, and SVG, while fillable form creation extends it beyond basic page export. This breadth makes it practical for templated business documents as well as more presentation-focused output.
It is deployed as software rather than consumed as a managed service. The default HTTP client cannot send cookies or authentication credentials, so protected assets require a custom URL fetcher and the integration work that entails. Rendering untrusted HTML or CSS can introduce security problems; applications accepting user content need strict controls and an appropriate isolation strategy.
Key features
Python and command-line generation
The Python API renders an HTML object with HTML.write_pdf(), fitting naturally into Python-based reporting, billing, and document pipelines. A command-line interface provides PDF/A, PDF/UA, and PDF/X variants, useful when archival, accessibility, or print-oriented conformance is part of the deliverable. Those options help specialist workflows, but they do not remove the need to validate the resulting documents against your own requirements.
Inputs, forms, and deployment
Support for URLs, local files, file objects, images, SVG, and raw HTML gives developers flexibility in how templates and assets are assembled. Fillable forms are supported when the output must remain interactive. Documentation covers Linux, macOS, and Windows installation, and the project can be used as a Python library or command-line component. Community-maintained Docker images and an AWS Lambda layer provide deployment starting points, though maintenance of those environments remains yours.
Runtime requirements
WeasyPrint 70.0 requires Python 3.10 or later and Pango 1.44 or later, alongside other dependencies. That is manageable for controlled development and server environments, but it can complicate upgrades, packaging, and minimal production images compared with a fully hosted API.
Pricing
The core software is free and open source at free. There are no per-document charges in the software plan, making it suitable for teams that can provide their own infrastructure and engineering time.
Optional professional assistance is sold annually. Basic consulting costs €150 a year (excluding taxes) for one topic per month, mail support, and a reply within one working day; it is unavailable in Canada and the USA. Essential is €350 a year for three topics monthly, mail plus a 30-minute video call per topic, with the same response target and regional restriction. Premium is €550 a year for five topics monthly and the same mail/video format. These plans cover help with use, configuration, integration, bug fixes, new features, and templating; they are consulting allowances, not hosted conversion quotas.
Platforms
WeasyPrint is offered for API and self-hosted deployments across Linux, macOS, and Windows. That combination suits teams standardizing on their own servers or applications, while the documented Docker and Lambda options can support containerized or serverless architectures. Platform portability still depends on satisfying Python, Pango, and related system requirements.
Who it's for
Choose WeasyPrint when your developers can supply HTML/CSS templates, need a Python-callable renderer, and want control over deployment, data handling, and PDF variants. It is particularly well matched to generated reports, invoices, tickets, and similar structured documents. Look elsewhere if you need turnkey hosting, built-in authenticated fetching without custom code, or a workflow that routinely renders untrusted submissions without a robust security boundary.
Pros and cons
Pros
- No software license fee: the open-source core costs 0.00 USD, avoiding per-document pricing in self-hosted workloads.
- Developer-oriented interfaces: Python's HTML.write_pdf() and the command line cover both embedded and batch generation.
- Broad document coverage: multiple input types, fillable forms, and PDF/A, PDF/UA, and PDF/X output support varied production needs.
- Deployment choice: documented operating-system installs plus community Docker images and an AWS Lambda layer support different infrastructure models.
Cons
- Dependency overhead: Python 3.10+, Pango 1.44+, and other packages add packaging and maintenance work.
- Authenticated fetching is not automatic: cookies and credentials require a custom URL fetcher.
- Security demands attention: untrusted HTML or CSS can create security problems.
- No managed service included: hosting, scaling, monitoring, and operational support are your responsibility unless you separately buy consulting.
Alternatives
For a wider category view, see PDF Creation Software.
- PDF24 Compare PDF is a free cross-platform option with no limits, registration, or time restrictions, better for users wanting a ready-made application rather than a developer library.
- Carbone offers a freemium cloud plan and API coverage, a better direction when hosted document allowances and templates matter.
- ReportLab provides an open-source PDF library free for commercial use, worth considering when direct programmatic PDF construction is preferable to HTML/CSS rendering.
- DocRaptor is a hosted API with a 5-document monthly free tier, suited to teams that want managed infrastructure and accept usage-based plans.
- Anvil PDF Generation API targets web/API workflows with a free UI tier and starter credits, rather than self-hosted rendering.
- CraftMyPDF combines templates and a REST API, useful when a template-centric service is more convenient than maintaining WeasyPrint dependencies.
- HTMLPDF.dev sells hosted monthly PDF quotas, a fit for teams seeking a straightforward API with defined volumes.
- PDF4me Merge & Split offers a free limited API tier and one-time call packs, aimed at API users who need metered document operations.
Verdict
WeasyPrint is a strong choice for developers building HTML-to-PDF generation into Python applications or self-managed services, especially when open-source licensing and specialized PDF variants matter. Its main reason to choose it is control over inputs, code, and deployment without software fees. Look elsewhere for a hosted, low-maintenance service or for workflows that cannot safely manage untrusted content and authenticated asset retrieval.
Alternatives to WeasyPrint
- 1

MuPDF
Free planAndroidiOSWebLinux7.7From $299 a month - 2
ComPDFKit PDF SDK
Free planAndroidiOSWebAPI7.4From $240 a year - 3
Spire.PDF
Free planAndroidiOSWebAPI7.3$999 one-time - 4

Aspose.PDF
AndroidWebAPILinux6.9$1,199 one-time - 5
PDFsharp
Free planLinuxmacOSSelf-hostedWindows6.8$499 one-time - 6
Syncfusion PDF Library
AndroidiOSWebAPI6.8From $1,199 a year
