使用PDFlib在PHP网页导出中文pdf文档

来源:互联网 发布:炉石传说for mac下载 编辑:程序博客网 时间:2024/06/06 19:04

关键字:PHP、pdf、PDFlib、Windows环境、utf8编码、中文、无水印

 

一、软件准备
PHP、Apache、MySQL的安装什么的就不说了。
需要以下几个软件:
PDFlib:PDFlib-7.0.4p6-MSWin32-php.zip
cmap:PDFlib-CMap-1.0.tar.gz(这个是Linux版本的,但我试了一下,Windows环境也能用)
PDFlib序列号:PDFlib7注册机和序列号产生规则.rar(这个是在csdn上找到了,感谢做破解的兄弟)

 

二、安装步骤
1、将libpdf_php.dll(/PDFlib-7.0.4p6-MSWin32-php/bind/php5/php-520/)拷贝至目录“D:/php/php5.2.8/ext/”和“D:/php/Apache2.2/bin/”中;(估计有一个应该不需要)
2、修改php.ini文件,增加“extension=libpdf_php.dll”;
3、将PDFlib-CMap-1.0.tar.gz解压,将cmap放到这里:“D:/php/cmap”;
4、重启Apache服务器;
5、<?php phpinfo(); ?>中可以看到
PDF Support enabled
PDFlib GmbH Binary-Version  7.0.4p6 
PECL Version  2.1.6 
Revision  $Revision: 1.5.2.16 $ 

 

三、提交与导出页面
1、提交页面test.html
注意设置字符集
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
写一个form,提交到pdfOutput.php,可以在输入框中写中文
<form   action="pdfOutput.php"   method="post">
  <p>姓名:<input   type=text   size=12   name="name">
  <input   type=submit   name=submit   value="确定">
</form>


2、导出页面pdfOutput.php
这个是重点,代码全部给出,注意看注释


<?php
header("content-Type: text/html; charset=utf8"); //设置字符集
$name = $_POST['name'];
try {
    $p = new PDFlib();
    $p->set_parameter("errorpolicy", "return");
    $p->set_parameter("SearchPath", "D:/php/cmap");//设置cmap的路径
    $p->set_parameter("license", "************");//这边要设置license
    if ($p->begin_document("", "") == 0) {
 die("Error: " . $p->get_errmsg());
    }
    $p->set_info("Creator", "pdfOutput.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");
    $p->begin_page_ext(595, 842, "");//设置pdf页面的大小
    $font = $p->load_font("AdobeSongStd-Light-Acro", "GBKp-EUC-H", "");//设置字体
    if ($font == 0) {
 die("Error: " . $p->get_errmsg());
    }
    $p->setfont($font, 12.0);//设置字体的大小
    $p->set_text_pos(30, 800);//设置起始点
    $p->show($name);
    $p->continue_text("继续往下写");
    $p->end_page_ext("");
    $p->end_document("");
    $buf = $p->get_buffer();
    $len = strlen($buf);
    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=导出.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:/n" .
 "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
 $e->get_errmsg() . "/n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
?>

按照这样做,应该是没有问题的。

我也是刚刚开始搞PHP,

欢迎多交流!

QQ:907635255

原创粉丝点击