ScreenshotNeo

BlogGuides

wkhtmltoimage GPL License and Commercial Use: What Developers Need to Know

wkhtmltoimage is LGPLv3, not GPL. Learn what that means for commercial use, distribution, and the licensing checks developers should make.

By the ScreenshotNeo team4 October 20267 min read

Short answer: Yes, commercial use may be possible, but the details depend on how you use and distribute it. Despite the title’s “GPL” shorthand, the wkhtmltoimage project identifies the tool as LGPLv3, which is distinct from the GNU GPL. That is not a blanket compliance ruling for a particular application: review the exact build, bundled components, linking and packaging choices, and distribution model.

The project describes wkhtmltoimage as a command-line tool that renders HTML into image formats using Qt WebKit. Its upstream repository contains the GNU Lesser General Public License version 3. Project website · Upstream license file

Is wkhtmltoimage GPL or LGPL?

The project’s own website calls wkhtmltoimage (along with wkhtmltopdf) open-source software under LGPLv3. The upstream repository’s license file is the GNU Lesser General Public License version 3, and GitHub labels the repository LGPL-3.0. So the precise answer is LGPLv3, not GPL. “GPL” is sometimes used loosely to refer to the GPL family, but the distinction matters because LGPL terms differ from the GNU GPL.

Check the notices shipped with the exact binary you use. The repository-level license does not by itself establish that every component bundled in every build has identical terms.

Can I use wkhtmltoimage commercially?

Commercial activity is not described by the project as prohibited. Qt’s LGPL guidance says an application’s own source code may remain proprietary when the LGPL requirements are met. That does not mean every commercial integration automatically complies or that a specific distribution model is approved.

The obligations to investigate depend on the covered components, whether they have been modified, how your application combines with or links to them, and how you deliver the result. Qt notes that dynamic linking can allow proprietary application code where it qualifies as a “work that uses the library”; static linking can change the analysis. If you distribute a product, consider the source, relinking, installation information, notices, and user freedoms that may apply.

Qt explicitly says its guidance is not legal advice and is not a complete list of LGPL requirements. It recommends experienced legal counsel for a full review. Do not treat this general explanation as confirmation that a particular product is compliant. Qt LGPL obligations · Qt LGPLv3 guidance

What to review before shipping

Use these questions to scope a product-specific review; they are not a complete legal checklist.

  1. Identify the exact build. Record the wkhtmltoimage version, source or binary origin, build configuration, and the Qt WebKit and other components included with it. Collect the license text and notices for each component.
  2. Check modifications and linking. Determine whether you changed wkhtmltoimage or an LGPL-covered library, whether libraries are bundled, and whether linking is static or dynamic. Ask counsel how the actual combination is classified.
  3. Review distribution obligations. If you distribute the application, determine what corresponding source and modifications must be offered, whether a compliant written offer is appropriate, and how users can replace or relink the library.
  4. Check the target device. For locked-down devices, appliances, or other restricted environments, determine whether installation information is required for users to install a modified version.
  5. Ship notices and preserve user rights. Review license texts, notices of rights, app-store terms, and any platform restrictions that could conflict with the freedoms the license requires.
  6. Account for every dependency. Qt advises tracking licenses for modules, samples, snippets, and libraries. Third-party components may have separate terms, so do not assume Qt licensing resolves every component.
  7. Get a product-specific opinion when needed. The nature of a combined work, patents, contracts, and the exact distribution path may affect the analysis. Ask an experienced open-source licensing lawyer when the commercial decision depends on the answer.

Dynamic linking, static linking, and Qt licensing

Linking is one of the facts that can change the analysis. Qt’s guidance describes dynamic linking as potentially compatible with keeping an application’s source proprietary when the application qualifies as a work that uses the library and the LGPL requirements are followed. Static linking may affect what users need to be able to do to replace or relink the library. The outcome depends on the concrete build and delivery, so do not reduce it to “dynamic is always safe” or “static is always forbidden.”

Qt offers its framework under commercial and open-source licenses and recommends commercial Qt licensing for some projects that cannot or do not intend to meet open-source terms. That is Qt’s licensing offer; it does not establish that buying a Qt license changes wkhtmltoimage’s own license or clears every dependency. Review the grant for each component separately. Qt licensing options

Commercial license or LGPL compliance?

Question LGPL route Qt commercial route
What is being licensed? The LGPL-covered components in the specific wkhtmltoimage build and their use or distribution. Qt framework rights included in the commercial license you purchase.
Can the application remain proprietary? Qt says this can be possible if the LGPL requirements are met; evaluate linking and distribution details. Depends on the actual commercial grant and components it covers.
Does it settle every dependency? No. Track third-party component licenses. No. Verify whether each dependency is covered by the grant or has separate terms.
What should a developer do? Inventory components and review compliance for the real delivery model. Read the grant and separately review wkhtmltoimage and other bundled components.

These routes should not be collapsed into a claim that purchasing a Qt license changes wkhtmltoimage’s license. The reviewed sources do not identify a separate commercial license for wkhtmltoimage itself.

Maintenance and security considerations

Licensing is only one part of the adoption decision. The upstream repository was archived on January 2, 2023, and the project download page lists 0.12.6 as the stable series, released June 11, 2020. Confirm platform support and maintenance status for the exact build and environment you intend to use. Archived upstream repository · Project downloads

The project also gives a separate security warning: untrusted HTML can lead to complete server takeover. Sanitize user-supplied HTML and JavaScript, and treat rendering untrusted content as a security boundary issue. That warning is distinct from the license analysis. Project security warning

When a hosted screenshot API may fit better

If your requirement is to capture public web pages rather than run wkhtmltoimage on HTML you control, a hosted screenshot API can avoid managing a local rendering binary and its deployment. ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. It accepts a URL and returns PNG, JPEG, WebP, or PDF. Learn more at ScreenshotNeo.

Or skip the browser setup

A single GET request captures a page. See the ScreenshotNeo API documentation for configuration and options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
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)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

ScreenshotNeo accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. An MCP server gives AI agents tools for screenshots, page information, and PDF capture. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.

Sign up for 1,000 free screenshots a month, with no card required.

Troubleshooting common licensing questions

Question or problem Why it comes up What to do
“The title says GPL. Can I treat it as GPL?” The project identifies wkhtmltoimage as LGPLv3, which is a distinct license. Use the exact license text and notices for your build; describe it as LGPLv3 when that is what the build carries.
“Our application is commercial, so is it prohibited?” Commercial use and license compliance are separate questions. Review how the covered components are used and delivered. Qt says proprietary application code may be possible when LGPL requirements are met.
“We dynamically link, so are we automatically compliant?” Linking method is relevant, but it does not establish compliance by itself. Check component licenses, modifications, relinking rights, notices, and distribution terms for the actual product.
“We bought a Qt commercial license; does that cover wkhtmltoimage?” Qt’s commercial licensing offer concerns Qt framework rights and does not by itself establish the grant for other components. Read the grant and verify wkhtmltoimage and every bundled dependency independently.
“The repository license is LGPL. Are all files in our binary LGPL?” A repository label does not identify every third-party component in every build. Inventory the exact binary and its notices, including Qt WebKit and other included libraries.
“Can we distribute without publishing our whole application?” Qt says proprietary application code may be possible, but LGPL conditions still apply. Have counsel evaluate the application/library relationship, source obligations, replacement or relinking path, and delivery terms.

Frequently asked questions

Does LGPLv3 mean my entire application must be open source?

Not necessarily. Qt says an application’s source may remain proprietary when the LGPL requirements are satisfied. Whether that applies to your product depends on its components and distribution details.

Is the archived repository still licensed under LGPLv3?

Archival status does not itself change the license text in the repository. Verify the license and notices attached to the exact source or binary you use.

Does this article determine whether my product complies?

No. The sources support the project’s stated license and general Qt guidance, not a legal conclusion for a particular application. Seek qualified legal advice for a product-specific decision.

Is the security warning part of LGPL compliance?

No. The project’s warning about untrusted HTML concerns security. It is a separate operational risk from license obligations.

Sources