示例一:使用PHP生成一个简单的PDF文档
以下为引用的内容:
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 002');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', 'BI', 20);
B. 如何从php程序读取pdf文档中的文本信息
PHP程序pdf格式文件函数库
本函数库共有65个函数
PDF是Adobe所发展的可携式文件格式,它的文件可以在网络上传输、浏览,甚至使用印表机印出,或使用其它输出装置输出,都可以保存原来的文字及图片的编排。详细的信息可以参考 Adobe 的网站。参考其中有关 PDF 或 Acrobat 的部份。
在 UNIX 系统中,可以使用 Thomas Merz 开发的 PDF 函数库。将它编译安装完成后,再编译 PHP 程序方可供 PHP 使用 pdflib。编译时可能要 JPEG library 及 TIFF library。
除了用这个函数库可以建立 PDF 文件外,FastIO 公司发展的产品 ClibPDF 也可以处理 PDF 文件。
以下为处理 PDF 文件的范例,本例对 test.pdf 加工后等待用户读取。
<?php
$fp = fopen("test.pdf", "w");
$pdf = PDF_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3>finished</A>";
?>
上例中的 gettest.php3 可能像下面的样子
<?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>
PDF_get_info: 返回文件信息。
PDF_set_info_creator: 配置建档者字符串。
PDF_set_info_title: 配置文件标题。
PDF_set_info_subject: 配置文件主题。
PDF_set_info_keywords: 配置文件的关键字。
PDF_set_info_author: 配置文件作者。
PDF_open: 建立新的 PDF 档。
PDF_close: 关闭 PDF 档。
PDF_begin_page: 启始 PDF 文件页面。
PDF_end_page: 关闭 PDF 文件页面。
PDF_show: 输出字符串到 PDF 文件。
PDF_show_xy: 输出字符串到指定坐标。
PDF_set_font: 配置使用的字型及大小。
PDF_set_leading: 配置行距。
PDF_set_text_rendering: 配置文字表现方式。
PDF_set_horiz_scaling: 配置文字水平间距。
PDF_set_text_rise: 配置文字高度。
PDF_set_text_matrix: 配置文字矩阵。
PDF_set_text_pos: 配置文字位置。
PDF_set_char_spacing: 配置字符间距。
PDF_set_word_spacing: 配置字间距。
PDF_continue_text: 输出文字。
PDF_stringwidth: 计算字符串的宽度。
PDF_save: 储存环境变量。
PDF_restore: 还原环境变量。
PDF_translate: 移动原点。
PDF_scale: 缩放类。
PDF_rotate: 旋转类。
PDF_setflat: 配置平滑值。
PDF_setlinejoin: 配置连接参数。
PDF_setlinecap: 配置 linecap 参数。
PDF_setmiterlimit: 配置斜边界限。
PDF_setlinewidth: 配置线宽。
PDF_setdash: 配置虚线样式。
PDF_moveto: 配置处理的坐标点。
PDF_curveto: 绘贝氏曲线。
PDF_lineto: 绘直线。
PDF_circle: 绘圆。
PDF_arc: 绘弧。
PDF_rect: 绘长方形。
PDF_closepath: 形成封闭的向量形状。
PDF_stroke: 沿向量绘线。
PDF_closepath_stroke: 形成封闭的向量形状并沿向量绘线。
PDF_fill: 填满目前的向量。
PDF_fill_stroke: 填满目前的向量并沿向量绘线。
PDF_closepath_fill_stroke: 形成封闭的向量形状沿向量绘线并填满。
PDF_endpath: 关闭目前向量。
PDF_clip: 组合所有向量。
PDF_setgray_fill: 指定填入的颜色为灰阶。
PDF_setgray_stroke: 指定绘图的颜色为灰阶。
PDF_setgray: 指定绘图的颜色为灰阶并填入。
PDF_setrgbcolor_fill: 指定填入的颜色为彩色。
PDF_setrgbcolor_stroke: 指定绘图的颜色为彩色。
PDF_setrgbcolor: 指定绘图的颜色为彩色并填入。
PDF_add_outline: 目前页面加入书签。
PDF_set_transition: 配置页的转换。
PDF_set_ration: 配置二页的切换时间。
PDF_open_gif: 打开 GIF 图档。
PDF_open_memory_image: 打开内存图档。
PDF_open_jpeg: 打开 JPEG 图档。
PDF_close_image: 关闭图档。
PDF_place_image: 放置图片到 PDF 档指定位置。
PDF_put_image: 放置图片到 PDF 档。
PDF_execute_image: 放置 PDF 档中图片到指定位置。
PDF_add_annotation: 加入注释。
C. 怎么用PHP在HTML中生成PDF文件
FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库。FPDF中的F代表免费和自由:你可以在任何情况下使用,并且支持自定义,来满足你特定的需求,特点:
1、可以选择单元、页面格式和边距
2、可以管理页眉和页脚
3、自动分页
4、自动换行和文本对齐
5、支持图片(JPEG,PNG,gif)
6、色彩丰富,支持链接
顺便也介绍一些可以直接从HTML生成PDF的函数库。
DomPDF
domPDF将HTML转换为PDF。DomPDF遵循CSS2.1的HTML布局,它是用PHP编写的渲染引擎。DomPDF以样式为主导:它会下载并读取外链样式表,内联样式和HTML元素的style属性值。并且还支持大部分的HTML可见属性。
特点:
1、处理大部分CSS2.1和少许CSS3属性,包括@import, @media & @page 规则
2、支持大部分HTML 4.1的可见属性
3、支持外部样式表,包括本地或者http/ftp链接的(通过fopen-wrappers)
4、支持复杂的表结构,包括行和列的span,separate & collapsed border models和独立的cell样式
5、支持图片(gif, png, bmp & jpeg)
6、不依赖于其他的PDF函数库
TCPDF
TCPDF也可以用于生成PDF文档,并且它是一个开源的PHP类库。
TCPDF项目开始于2002年,现在已经被成千上万的人自由使用。TCPDF is a Free Libre Open Source Software (FLOSS).
特点:
1、基本功能不依赖于其他PDF函数库
2、标准页面格式、支持页面格式自定义、边距自定义和单元计量
3、支持UTF-8编码和文字方向从右到左的语言。
4、支持TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0等字体
5、支持字体子集,并提供方法发布一些XHTML + CSS code, javascript and Forms
6、支持图片和图形的转换
7、支持页面压缩(需要php-zlib扩展)
8、自动管理页眉和页脚
D. php怎么实现在线阅读pdf文件
为了更好地用户体验,建议你前端采用 FlexPaper在线显示文档组件来显示你的文档,先用PDF2SWF工具将你的pdf转成flash文件,然后用 FlexPaper来显示转换后的swf文件,这样用户浏览速度会很快,就像网络文库那样!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript" src="pdfobject.js"></script>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//第一种方式
// var myPDF = new PDFObject({ url: "1.pdf" }).embed();
//第二种方式
var variablename = new PDFObject({ url: "1.pdf" }).embed("pdfobj");
//第三种方式
// var myembedparams = {
// url: "1.pdf"
// };
// var myPDF = new PDFObject(myembedparams).embed();
});
</script>
</head>
<body>asdfadsfasdf
<div id="pdfobj"></div>
</body>
</html>