Discuz教程网

用PHP生成PDF文件和FPDF文件

[复制链接]
authicon 09927306 发表于 2011-1-15 13:35:11 | 显示全部楼层 |阅读模式
本帖最后由 09927306 于 2011-1-15 13:36 编辑

FPDF可以让我们创建pdf文件而不用去调用PDFlib

这里可以下到最新的windows下的版本:
http://www.fpdf.org/en/dl.php?v=152&f=zip

这里可以下到中文手册:
http://www.fpdf.org/en/dl.php?id=72
若要其他版本可以到这里下到:
http://www.fpdf.org/
这也是FPDF的官方网站,如果有问题可以去上面问,回复的挺快的,我上午问了1个问题他们下午就回了。不过那上面的时间都是美国时间。
下面是一个很简单的用FPDF创建一个pdf文件并添加一页的例子
  1. <?
  2. define(\'FPDF_FONTPATH\',\'fpdf152/font/\');
  3. require(\'fpdf152/fpdf.php\');
  4. $pdf = new FPDF;
  5. $pdf->AddPage();
  6. $pdf->Output(\'a.pdf\', \'D\');
  7. ?>
复制代码

当然也可以用$pdf->open();来新建一个pdf文件
但是在这里,Addpage()包含了open(),他同时完成了新建一个pdf文件和添加1页两个步骤
上面例子里的define(\'FPDF_FONTPATH\',\'fpdf152/font/\');定义了存放字体文件的目录
具体下载了压缩包后就看到那个font文件夹了,只要指向那个文件夹就行了
上面这段程序还不能显示任何东西
现在来加两句
  1. <?
  2. define(\'FPDF_FONTPATH\',\'fpdf152/font/\');
  3. require(\'fpdf152/fpdf.php\');
  4. $pdf = new FPDF;
  5. $pdf->AddPage();
  6. $pdf->SetFont(\'arial\');
  7. $pdf->Text(5,20,\'test pdf\');
  8. $pdf->Output(\'a.pdf\', \'D\');
  9. ?>
复制代码

SetFont()设定字体,这步在第1次调用FPDF的时候一定要,否则pdf文件打开时将会提示“没有定义字型“而什么都不显示
这里最好定义比较常用的字体,并且中文不支持。
要支持中文或支持比较偏的字体要用到AddFont(),但是我测试暂时没通过,希望哪位通过的可以指点一下 ^^
Text()打印一个字符串,横坐标为5,纵坐标为20,字符串内容为“test pdf”
关于最后的Output()里的参数\'D\'可以参照手册里,写的很清楚了
这样导出的pdf文件就会显示\'test pdf\'了。
如果兴趣好,再加上张图片
  1. <?
  2. define(\'FPDF_FONTPATH\',\'fpdf152/font/\');
  3. require(\'fpdf152/fpdf.php\');
  4. $pdf = new FPDF;
  5. $pdf->AddPage();
  6. $pdf->SetFont(\'arial\');
  7. $pdf->Text(5,20,\'test pdf\');
  8. $pdf->Image(\'jianxin_mark.jpg\', 5, 30, 60, 50);
  9. $pdf->Output(\'a.pdf\', \'D\');
  10. ?>
复制代码

Image()可以在pdf中插入图片,前面是文件名,要包括路径,5是横坐标,30是纵坐标,60是图片宽度,50是高度
ok,这样一个又有文字又有图片的pdf文件就建立了。
其实还有很多功能,手册中都有写,但不是很详细,需要各位自己去研究发掘了。。。





上一篇:JAVA/JSP学习系列之五
下一篇:PHP 5 数据对象 (PDO) 抽象层与 Oracle
authicon fantuanzi 发表于 2011-6-17 01:00:09 | 显示全部楼层
前来看看那
authicon lightning123 发表于 2011-8-10 10:32:08 | 显示全部楼层
这个贴不错!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 05:29

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表