# NAME
Catalyst::View::Wkhtmltopdf - Catalyst view to convert HTML (or TT) content to PDF using wkhtmltopdf
# SYNOPSIS
```perl
# lib/MyApp/View/Wkhtmltopdf.pm
package MyApp::View::Wkhtmltopdf;
use Moose;
extends qw/Catalyst::View::Wkhtmltopdf/;
__PACKAGE__->meta->make_immutable();
1;
# configure in lib/MyApp.pm
MyApp->config({
...
'View::Wkhtmltopdf' => {
command => '/usr/local/bin/wkhtmltopdf',
# Guessed via File::Spec by default
tmpdir => '/usr/tmp',
# Name of the Template view, "TT" by default
tt_view => 'Template',
},
});
sub ciao : Local {
my($self, $c) = @_;
# Pass some HTML...
$c->stash->{wk} = {
html => $web_page,
};
# ..or a TT template
$c->stash->{wk} = {
template => 'hello.tt',
page_size => 'a5',
};
# More parameters...
$c->stash->{wk} = {
html => $web_page,
disposition => 'attachment',
filename => 'mydocument.pdf',
};
$c->forward('View::Wkhtmltopdf');
}
```
# STATUS
The wkhtmltopdf project is no longer being maintained, and this module has been deprecated.
Consider migrating to [Catalyst::View::ChromePDF](https://metacpan.org/pod/Catalyst%3A%3AView%3A%3AChromePDF).
See ["SECURITY CONSIDERATIONS"](#security-considerations).
# DESCRIPTION
`Catalyst::View::Wkhtmltopdf` is a [Catalyst](https://metacpan.org/pod/Catalyst) view handler that
converts HTML data to PDF using `wkhtmltopdf`.
It can also handle direct conversion of [Template-Toolkit](https://metacpan.org/pod/Template) templates via [Catalyst::View::TT](https://metacpan.org/pod/Catalyst%3A%3AView%3A%3ATT).
# RECENT CHANGES
Changes for version v0.6.4 (2026-09-03)
- Important Changes
- This module has been deprecated.
- Documentation
- Mention Catalyst::View::ChromePDF as an alternative in the STATUS.
- Added AI\_POLICY.md
See the `Changes` file for more details.
# REQUIREMENTS
[wkhtmltopdf](https://wkhtmltopdf.org) must be installed.
This module lists the following modules as runtime dependencies:
- [B](https://metacpan.org/pod/B)
- [Catalyst::View](https://metacpan.org/pod/Catalyst%3A%3AView)
- [Catalyst::View::TT](https://metacpan.org/pod/Catalyst%3A%3AView%3A%3ATT)
- [File::Spec](https://metacpan.org/pod/File%3A%3ASpec)
- [File::Temp](https://metacpan.org/pod/File%3A%3ATemp)
- [File::Which](https://metacpan.org/pod/File%3A%3AWhich)
- [IO::File::WithPath](https://metacpan.org/pod/IO%3A%3AFile%3A%3AWithPath)
- [IPC::Run3](https://metacpan.org/pod/IPC%3A%3ARun3)
- [Moose](https://metacpan.org/pod/Moose)
- [URI::Escape](https://metacpan.org/pod/URI%3A%3AEscape)
- [namespace::autoclean](https://metacpan.org/pod/namespace%3A%3Aautoclean)
- [strict](https://metacpan.org/pod/strict)
- [version](https://metacpan.org/pod/version) version 0.77 or later
- [warnings](https://metacpan.org/pod/warnings)
See the `cpanfile` file for the full list of prerequisites.
# INSTALLATION
The latest version of this module (along with any dependencies) can be installed from [CPAN](https://www.cpan.org) with the `cpan` tool that is included with Perl:
```
cpan Catalyst::View::Wkhtmltopdf
```
You can also extract the distribution archive and install this module (along with any dependencies):
```
cpan .
```
You can also install this module manually using the following commands:
```
perl Makefile.PL
make
make test
make install
```
If you are working with the source repository, then it may not have a `Makefile.PL` file. But you can use the [Dist::Zilla](https://dzil.org/) tool in anger to build and install this module:
```
dzil build
dzil test
dzil install --install-command="cpan ."
```
For more information, see [How to install CPAN modules](https://www.cpan.org/modules/INSTALL.html).
# SECURITY CONSIDERATIONS
## Status of the Wkhtmltopdf Project
**Do not use wkhtmltopdf with untrusted HTML.**
The wkhtmltopdf project [is no longer being maintained](https://wkhtmltopdf.org/status.html),
and the underlying QtWebKit libraries that it uses have been unsupported since 2015.
The [git repository](https://github.com/wkhtmltopdf/wkhtmltopdf) was archived as read-only in 2023.
You should consider migrating to alternative solutions.
## Options
It is assumed that the ["command"](#command) attribute is configured by a trusted source (developer or operator).
The options are sent to wkhtmltopdf via stdin, using the `--read-args-from-stdin` option.
However, any options configured through the web application should be considered untrusted and validated.
## Temporary Files
Temporary HTML and PDF files are saved in ["tmpdir"](#tmpdir).
They may be left in the directory on failure.
When returning a filehandle instead of the PDF content, the PDF files are not removed when ["send\_filehandle"](#send_filehandle) is true.
A separate process will need to purge files, to prevent them from filling the disk, as well as to remove sensitive information.
# SUPPORT
This module is deprecated. There may not be future releases.
Please report any bugs or feature requests on the bugtracker website
[https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-View-Wkhtmltopdf](https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-View-Wkhtmltopdf)
When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.
## Reporting Security Vulnerabilities
If the bug you are reporting has security implications which make it inappropriate to send to a public issue tracker,
then see `SECURITY.md` for instructions how to report security vulnerabilities.
# AUTHOR
Michele Beltrame
This module is currently maintained by Robert Rothenberg .
# COPYRIGHT AND LICENSE
This software is copyright (c) 2011-2018, 2026 by Michele Beltrame .
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
# SEE ALSO
[Catalyst](https://metacpan.org/pod/Catalyst)
[Catalyst::View::TT](https://metacpan.org/pod/Catalyst%3A%3AView%3A%3ATT)
[https://wkhtmltopdf.org](https://wkhtmltopdf.org)