簡體   English   中英

如何使用 Perl 將 HTML 轉換為 PDF?

[英]How can I convert HTML to PDF using Perl?

我需要使用 Perl 將一些 HTML 報告轉換為 PDF。 什么是最適合這項工作的CPAN模塊?

我希望PDF::FromHTML可能有所幫助。

HTML::HTMLDoc使用底層的 htmldoc C 庫,它就是為此而構建的。 而且它也非常快。

我使用PDF::API2成功地創建了 PDF 報告。

這完全取決於您需要做什么,但我可能會查看Template::ExtractPDF::Template

PinceXML

從使用 Perl 的角度來看,這並不能回答您的問題,但據我所知,這是可用的最好的 HTML 到 PDF 轉換器。

PDF::網絡套件

我可以使用帶有 PDF::WebKit 的 Perl 從 HTML 轉換為 PDF,后者又使用wkhtmltopdf 來自apt show wkhtmltopdf

使用 WebKit 將 html 轉換為 pdf 或圖像的命令行實用程序 wkhtmltopdf 是一個命令行程序,它允許從 url、本地 html 文件或標准輸入創建 pdf 或圖像。 它生成 pdf 或圖像,類似於使用 WebKit 引擎渲染的圖像。

該程序需要 X11 服務器才能運行。

因此,這種解決方案在服務器上似乎是不可接受的。 也許 是 WeasyPrint (用 Python 構建)或 athenapdf 還是 潘多克

最新版本是無頭的(不需要 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');

示例, 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>

截屏

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM