我需要使用Perl将一些HTML报告转换为PDF。哪些CPAN模块最适合此工作?
HTML::HTMLDoc使用底层的htmldoc C库来实现这一功能。而且它运行速度也相当快。
我可以使用 PDF::WebKit 在 Perl 中将 HTML 转换为 PDF,它又使用 wkhtmltopdf。从 apt show wkhtmltopdf
可以得到:
命令行实用程序,使用 WebKit 将 HTML 转换为 PDF 或图像 wkhtmltopdf 是一个命令行程序,它允许您从 URL、本地 HTML 文件或 stdin 创建 PDF 或图像。它生成一个类似于使用 WebKit 引擎呈现的 PDF 或图像。
该程序需要 X11 服务器才能运行。
因此,在服务器上,这个解决方案似乎是不可接受的。也许可以考虑使用 Python 构建的 WeasyPrint 或 athenapdf?或者 Pandoc?
sudo cpanm install PDF::WebKit
sudo apt install xfonts-75dpi
sudo apt install wkhtmltopdf
html2pdf.pl
#!/usr/bin/perl
use PDF::WebKit;
my $kit = PDF::WebKit->new('/tmp/index.html');
my $file = $kit->to_file('/tmp/my.pdf');
<!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>
这并不是用Perl来回答你的问题,但据我所知,这是目前最好的HTML转PDF转换器。