使用PERL脚本生成PDF输出

豆豆网   技术应用频道   2007年10月07日  【字号: 收藏本文

内容摘要:本文向大家介绍了怎样使用PERL脚本生成PDF的输出方法。

使用PERL脚本生成PDF输出

  使用PERL产生PDF输出

  为了更好的说明如何将HTMLDOC集成到Perl CGI脚本中,我们假设在WEB服务端编写了一个PERL脚本,可以接收从客户端传来的名为innerHTML的参数(innerHTML可以是一个表单域),然后将innerHTML转化成PDF文件再传回用户端的浏览器。

   我们可以把处理后传回的数据流的MIME类型设定为application/pdf。这样,如果用户在客户端安装了Adobe Acrobat阅读程序,浏览器就可以根据接收信息的MIME类型启动Adobe Acrobat。否则,浏览器将会询问用户以何种方式打开该文件或者选择是否保存该文件。

  本例所述程序的客户端界面可以如下:

使用PERL脚本生成PDF输出

   当用户在表单中输入HTML代码之后,点击“Download PDF”键,数据上传到服务端,经过HTMLDOC转化后传回,并最终以PDF格式显示。显示结果可以如下:

使用PERL脚本生成PDF输出

  在对程序的输入和输出有所了解之后,我们就来看一下到底如何将PERL和HTMLDOC结合起来,实现以上功能。

  具体代码如下:

#!/usr/bin/perl
#使用HTMLDOC产生PDF输入
use CGI;
#获取CGI参数
my $cgiobj=new CGI;
my $innerHTML=$cgiobj-$#@62;param("innerHTML");
#处理输入数据中各种可能出现的特殊字符
my %specialChars=(
"’","′",
"$","$",
"@","@",
"!","!",
"
","",
"
","");
my $specialCharList=join("",keys %specialChars);
$innerHTML=~s//\\/g;
$innerHTML=~s/([$specialCharList])/$specialChars{$1}/g;
#向浏览器输出PDF标头
print "Content-Type: application/pdf
";
#创建并向浏览器输出PDF数据流
if ($innerHTML) {
my $command="`echo -e ’".$innerHTML."’ | htmldoc --webpage -t pdf - `";
print eval($command);
}

责编:豆豆技术应用

正在加载评论...