wkhtmltopdf Commercial License and Usage Restrictions Explained
Commercial use of wkhtmltopdf is not automatically barred by its LGPLv3 license. Learn how modifications, linking and distribution can change the obligations.
Short answer: Commercial use of wkhtmltopdf is not categorically prohibited. The project identifies wkhtmltopdf and wkhtmltoimage as command-line tools under the GNU Lesser General Public License version 3 (LGPLv3). Your obligations depend on what you do with the software: running it internally, modifying it, linking it into an application, or distributing it as part of a product are different situations. For a real distribution decision, review the license text against your actual packaging and get qualified legal advice.
This guide explains the project-specific license information and the practical questions to investigate. It is general information, not a legal determination about a particular product, jurisdiction, or deployment.
1. What license does wkhtmltopdf use?
The project homepage describes wkhtmltopdf and its companion wkhtmltoimage as open-source command-line tools under LGPLv3. The GitHub repository labels the license LGPL-3.0, and its LICENSE file contains the GNU Lesser General Public License version 3, dated June 29, 2007. The tools use Qt WebKit.
Start with the license distributed with the exact version you use. Do not rely only on a package summary, a forum response, or this article when you need to determine compliance.
2. Is commercial use allowed?
The LGPL is not a blanket ban on commercial use. A company may use LGPL-licensed software in a commercial setting, but the conditions of the license matter, especially when software is modified, conveyed to others, linked with an application, or combined and distributed.
“We use it commercially” does not by itself describe the licensing question. The key facts include whether wkhtmltopdf leaves your organization, whether you ship it to customers, how your application invokes or links it, whether you changed it, what dependencies are included, and what materials or rights you provide to recipients.
3. How deployment and distribution affect the analysis
The following examples help identify the questions to take to the license text and counsel. They are not legal conclusions about any particular architecture.
| Situation | Questions to review |
|---|---|
| Run the tool on your own server for an internal workflow | Is the software conveyed to another party, or does it remain within your organization? What exact binary and dependencies are installed? Have you modified any covered code? |
| A hosted application invokes the executable to produce documents for customers | Does the deployment actually convey the executable, a container, or another copy to customers? How does the application invoke it? What does the applicable license require for this specific arrangement? |
| Ship an installer, appliance, container, or bundle containing wkhtmltopdf | Review notice and license-document obligations, the applicable combined-work provisions, and the route for allowing recipients to modify the library and use their modified version with the application. The license describes routes involving a suitable shared-library mechanism or corresponding source and relinking materials under its terms. |
| Modify wkhtmltopdf or covered library code | Identify every change and review the license provisions for modified versions, source, notices, and any applicable installation information. |
| Link an application with a library rather than invoke a separate executable | Determine whether the technical arrangement forms a combined work and which LGPL conditions apply. Calling two arrangements “integration” does not make them legally equivalent. |
The LGPLv3 text addresses applications using a library and combined works made by combining or linking an application with that library. In relevant combined-work cases, it describes conditions that include prominent notices, copies of the GNU GPL and LGPL documents, and an allowed way for recipients to modify the library and use the modified version with the application. The method and other requirements depend on the license terms and the actual form of conveyance.
Do not reduce the result to either “closed-source software is always forbidden” or “calling a command-line program is always exempt.” The license text and facts of distribution and integration matter.
4. A hosted-server question is not a universal safe harbor
A 2017 project issue asked about a web program running on a central server, called through a Java class, where the author said they did not distribute or modify wkhtmltopdf. That is a useful example of the question developers ask, but the issue is not a legal holding.
A server-only deployment, a redistributed container, and an application that links a library are distinct fact patterns. Before relying on a “we only call it on the server” assumption, map what copies exist, who receives them, what is modified, and how the program is technically connected to the renderer.
5. Is a separate commercial license available?
The original creator, Jakob Truelsen, wrote in a project mailing-list discussion on November 6, 2014: “I will not relicense wkhtmltopdf, if LGPL is not good for you, then use some something else. You cannot use wkhtmltopdf without qt, which is LGPL anyhow.” This is historical maintainer guidance, not a current legal opinion. The cited project material does not identify a separate commercial relicense to purchase.
If your distribution model cannot meet the applicable LGPL conditions, discuss alternatives with counsel and evaluate a different renderer. The project suggests WeasyPrint or the commercial tool Prince for reports using HTML that you control. It separately suggests Puppeteer for sites that rely on dynamic JavaScript. These are the project’s recommendations, not an independent comparison or performance test.
6. Project status and security considerations
- The official downloads page identifies version 0.12.6 as the stable series and gives its release date as June 11, 2020.
- The GitHub repository was archived by its owner on January 2, 2023 and is read-only.
- The project warns: “Do not use wkhtmltopdf with any untrusted HTML – be sure to sanitize any user-supplied HTML/JS, otherwise it can lead to complete takeover of the server it is running on!” Its status page also recommends considering AppArmor or SELinux.
License compliance and operational security are separate concerns. If you process user-provided content, follow the project’s warning, assess the threat model, and isolate the rendering process appropriately. The project’s warning is strong: do not feed it untrusted HTML.
7. A practical review checklist
- Identify the exact software. Record the wkhtmltopdf version, package source, Qt and other included dependencies, and the license files shipped with them.
- Draw the delivery path. Note whether copies stay on your systems or are included in a customer download, installer, appliance, or container.
- Describe the connection. Establish whether your application invokes a separate process, links a library, or uses another integration method.
- Inventory modifications. Check whether your team or a vendor changed wkhtmltopdf, Qt, or other covered components.
- Map recipient rights and materials. For anything conveyed, analyze the applicable notice, license-copy, source, relinking, modification, and installation-information provisions in the license.
- Review dependencies and contracts. A product may contain components under different licenses; review those and any distribution agreements too.
- Get fact-specific advice. Give qualified counsel the architecture, binaries, modifications, distribution path, recipient terms, and jurisdictions. The title of the software alone cannot settle the answer.
8. Or skip the browser setup
If your goal is to capture a website as an image or PDF rather than operate a renderer yourself, ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. It is an alternative to try first for website capture: one GET request returns a PNG, JPEG, WebP, or PDF. See the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
- Cookie and consent banners, newsletter popups, and chat widgets are removed before the shot; each cleanup step can be turned off.
- Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing. The response includes
X-Page-VerdictandX-Billedheaders. - An MCP server lets AI agents using Claude, Cursor, or another MCP client take screenshots with
take_screenshot, inspect pages withget_page_info, and capture PDFs withcapture_pdf. - The free plan includes 1,000 screenshots a month with no card. Paid plans start at $5 for 3,000 screenshots; all features are on every plan.
Sign up free for 1,000 screenshots a month, with no card required.
9. Frequently asked questions
Does selling software that uses wkhtmltopdf automatically violate LGPLv3?
No such blanket conclusion follows from commercial use alone. Whether obligations apply depends on the particular modifications, integration, conveyance, and distribution arrangement.
Does the 2017 GitHub issue prove that server-side use has no restrictions?
No. It records a user’s question, not a legal ruling. Analyze the actual software and deployment against the license.
Can I pay the original creator for a proprietary license?
The creator said in 2014 that he would not relicense the project. The cited material does not identify a separate commercial license.
Can I safely render HTML supplied by users?
The project explicitly warns against using wkhtmltopdf with untrusted HTML. Sanitize user-supplied HTML and JavaScript, and consider the isolation guidance on the project status page.


