我需要使用Perl将一些HTML报告转换为PDF。这项工作的最佳CPAN模块是什么?
答案 0 :(得分:7)
我希望PDF::FromHTML可能有所帮助。
答案 1 :(得分:2)
HTML::HTMLDoc使用底层的htmldoc C库来构建这样做。而且它也很快。
答案 2 :(得分:1)
我使用PDF::API2创建了PDF报告并取得了巨大成功。
答案 3 :(得分:1)
这取决于你需要做什么,但我可能会看Template::Extract和PDF::Template。
答案 4 :(得分:1)
在使用Perl的意义上,这并没有回答你的问题,但据我所知,这是最好的HTML到PDF转换器。
答案 5 :(得分:0)
我可以使用带有PDF :: WebKit的Perl从HTML转换为PDF,后者依次使用wkhtmltopdf。来自apt show wkhtmltopdf
:
使用WebKit将html转换为pdf或图像的命令行实用程序wkhtmltopdf是一个命令行程序,它允许用户从url,本地html文件或stdin创建pdf或图像。它会生成pdf或类似WebKit引擎渲染的图像。
该程序需要X11服务器才能运行。
因此,此解决方案在服务器上似乎不可接受。也许WeasyPrint(使用Python构建)或athenapdf?还是Pandoc?
最新版本是无头的(不需要X服务器)。
安装:
sudo cpanm install PDF::WebKit
sudo apt install xfonts-75dpi
sudo apt install wkhtmltopdf
Use .deb from official site以获取最新版本。
html2pdf.pl
#!/usr/bin/perl
use PDF::WebKit;
my $kit = PDF::WebKit->new('/tmp/index.html');
my $file = $kit->to_file('/tmp/my.pdf');
示例, index.html :
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Title</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>
<body>
<p class="text-primary">.text-primary</p>
<p class="text-secondary">.text-secondary</p>
<p class="text-success">.text-success</p>
<p class="text-danger">.text-danger</p>
<p class="text-warning">.text-warning</p>
</body>
</html>