如何使用Perl将HTML转换为PDF?

gcmastyq  于 2022-11-15  发布在  Perl
关注(0)|答案(6)|浏览(179)

我需要使用Perl将一些HTML报告转换为PDF。什么是最适合这项工作的CPAN模块?

up9lanfz

up9lanfz2#

HTML::HTMLDoc使用了底层的htmldoc C库,它就是为了完成这个任务而构建的,而且速度也非常快。

wj8zmpe1

wj8zmpe13#

这完全取决于您需要做什么,但我可能会考虑Template::ExtractPDF::Template

vq8itlhq

vq8itlhq4#

PinceXML
这并没有回答你的问题,在使用Perl的意义上,但据我所知,这是最好的HTML到PDF转换器可用。

camsedfj

camsedfj5#

我已经使用PDF::API2创建PDF报告并取得了巨大成功。

ebdffaop

ebdffaop6#

PDF::WebKit(第一个字母)

我可以使用Perl和PDF::WebKit将HTML转换为PDF,而WebKit又使用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

使用.deb从官方网站获得最新版本。

html2pdf.pl文件格式

#!/usr/bin/perl
use PDF::WebKit;
my $kit = PDF::WebKit->new('/tmp/index.html');
my $file = $kit->to_file('/tmp/my.pdf');

示例,索引.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>

相关问题