首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从HTML表格生成可下载的PDF

从HTML表格生成可下载的PDF
EN

Stack Overflow用户
提问于 2013-02-12 00:04:25
回答 1查看 1.2K关注 0票数 1

你能推荐一些工具来从HTML表格中生成可下载的PDF吗?

如果可能,与Twitter Bootstrap兼容。

附言:我试过虾,但我想知道一些其他的工具。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 00:48:45

您需要了解的内容

基本Perl脚本、HTML、Perl模块安装

简介

Adobe©PDF文件是用于传输文档的常用文件格式之一。原因之一是它以打印文档的方式显示文档(所见即所得)。因为它不需要文字处理器来浏览文档,所以它也方便得多。你只需要他们的阅读器能够浏览文档。

Perl有一个模块,允许您将HTML文件转换为PDF文档。这是通过使用HTML::HTMLDoc模块完成的。

Installation

您需要从Easy Software Products下载HTMLDoc产品。首先安装它,然后可以从CPAN下载HTML::HTMLDoc模块。下载之后,按照典型的Perl模块的方式安装它。

生成您的文档

首先要做的是使用模块并创建HTML::HTMLDoc包的实例。

然后,您可以将完整的HTML文档传递给包,或者告诉它从HTML文件生成PDF文档。

示例代码

代码语言:javascript
复制
#!/usr/bin/perl
use HTML::HTMLDoc;
use strict;
####################################################
# This script is distributed according to the terms of
# the Perl Artistic License. Use at your own risk
# © 2004 Philip L. Yuson
####################################################
my $str = '
<html>
<body>
<p><font size=14pt><b>HTML to PDF Document</b></font></p>
<p>Let us see how this will work</p>
<table border=1>
<tr><td>This is a row in a table</td></tr>
<tr><td>This is another row</td></tr>
</table>
<HR>
copyright © 2004 Philip L. Yuson 
</body>
</html>';
my $html = new HTML::HTMLDoc(); # Start instance
$html->set_page_size('letter'); # set page size
$html->set_bodyfont('Arial'); # set font
$html->set_left_margin(1, 'in'); # set margin
$html->set_html_content($str); # contents to convert
my $pdf = $html->generate_pdf(); # generate document
$pdf->to_file('article.pdf'); # save document

将其另存为pdf.pl,然后通过启动命令行并键入以下命令来运行它:

perl pdf.pl

这应该会生成一个类似下面这样的文件。

生成用于在web上下载的PDF文件

要生成可下载的PDF,而不将其保存到文件中,您可以使用与上面相同的脚本,只是需要更改最后一行。但是,为了使我们的示例更有趣,我们还将把日期和时间放在文档上。因此,脚本将如下所示:

代码语言:javascript
复制
#!/usr/bin/perl
use HTML::HTMLDoc;
use Date::Calc;
use strict;
####################################################
# This script is distributed according to the terms of
# the Perl Artistic License. Use at your own risk
# © 2004 Philip L. Yuson
####################################################
my @c = Date::Calc::Today_and_Now();
my $str_temp;
foreach (@c) {
 $str_temp .= sprintf("%02d:", $_);
}
my $str = "
<html>
<body>
<p><font size=14pt><b>HTML to PDF Document</b></font></p>
<p>Let us see how this will work</p>
<table border=1>
<tr><td>This is a row in a table</td></tr>
<tr><td>This is another row</td></tr>
</table>
<HR>
This document was generated:
$str_temp
copyright © 2004 Philip L. Yuson 
</body>
</html>";
my $html = new HTML::HTMLDoc(); # Start instance
$html->set_page_size('letter'); # set page size
$html->set_bodyfont('Arial'); # set font
$html->set_left_margin(1, 'in'); # set margin
$html->set_html_content($str); # contents to convert
my $pdf = $html->generate_pdf(); # generate document
# Tell browser this is a a PDF document
print "Content-Type: Application/pdf\n\n"; 
$pdf->to_string(); # Send the document
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14815957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档