叁柒設計 三七设计 Three seven design 我的学习与分享
详细信息
来自:关键字:

PHP4手册:函数库及函数(四十) PDF 格式档案函式库 - 1

  December 21th,2008 22:39:58   Category : PHP+Mysql
 Click (543)

--------------------------------------------------------------------------------
 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 加工后等待使用者读取。

$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 "finished";
?>    


上例中的 gettest.php3 可能像下面的样子

$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_duration: 设定二页的切换时间。 
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: 加入注解。 

--------------------------------------------------------------------------------
 函式:PDF_get_info() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_get_info
传回档案资讯。

语法: int pdf_get_info();

传回值: 整数

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来取得 PDF 的档案资讯,例如作者、主题....等等。需要 pdflib 2.0 以上才能使用本函式的功能。


 
 
参考 


PDF_set_info_creator()  PDF_set_info_author()  PDF_set_info_keywords()  PDF_set_info_title()  PDF_set_info_subject()  


--------------------------------------------------------------------------------
 函式:PDF_set_info_creator() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_info_creator
设定建档者字串。

语法: void pdf_set_info_creator(int info, string creator);

传回值: 无

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 PDF 的建立档案者资讯。参数 info 为 PDF 档案资讯代码,供 PDF_open() 所使用的代码。参数 creator 为建档者名称。需要 pdflib 2.0 以上才能使用本函式的功能。

 

--------------------------------------------------------------------------------
 函式:PDF_set_info_title() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_info_title
设定档案标题。

语法: void pdf_set_info_title(int info, string title);

传回值: 无

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 PDF 的档案标题 (title)。参数 info 为 PDF 档案资讯代码,供 PDF_open() 所使用的代码。参数 title 为欲设定的档案标头字串。需要 pdflib 2.0 以上才能使用本函式的功能。

 

--------------------------------------------------------------------------------
 函式:PDF_set_info_subject() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_info_subject
设定档案主题。

语法: void pdf_set_info_subject(int info, string subject);

传回值: 无

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 PDF 的档案主题 (subject)。参数 info 为 PDF 档案资讯代码,供 PDF_open() 所使用的代码。参数 subject 为欲设定的档案主题字串。需要 pdflib 2.0 以上才能使用本函式的功能。

 

--------------------------------------------------------------------------------
 函式:PDF_set_info_keywords() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_info_keywords
设定档案的关键字。

语法: void pdf_set_info_keywords(int info, string keywords);

传回值: 无

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 PDF 档案的关键字 (keyword)。参数 info 为 PDF 档案资讯代码,供 PDF_open() 所使用的代码。参数 keywords 为欲设定的档案关键字字串。需要 pdflib 2.0 以上才能使用本函式的功能。

 

--------------------------------------------------------------------------------
 函式:PDF_set_info_author() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_info_author
设定档案作者。

语法: void pdf_set_info_author(int info, string author);

传回值: 无

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 PDF 档案的作者。参数 info 为 PDF 档案资讯代码,供 PDF_open() 所使用的代码。参数 author 为欲设定的档案作者名字。需要 pdflib 2.0 以上才能使用本函式的功能。

 

--------------------------------------------------------------------------------
 函式:PDF_open() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_open
建立新的 PDF 档。

语法: int pdf_open(int file, int info);

传回值: 整数

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来开启新的 PDF 档案,意即建立新的 PDF 档。参数 file 为使用 fopen() 所开档的档案代码。参数 info 为 PDF_get_info() 产生的 PDF 档案资讯代码。成功则传回 PDF 档案代码。

 

--------------------------------------------------------------------------------
 函式:PDF_close() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_close
关闭 PDF 档。

语法: boolean pdf_close(int pdfid);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来关闭 PDF 档案。参数 pdfid 为 PDF 档案代码。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_begin_page() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_begin_page
启始 PDF 档案页面。

语法: boolean pdf_begin_page(int pdfid, double height, double width);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来启始 PDF 档案页面,并设定页面大小。参数 pdfid 为 PDF 档案代码。参数 height 与 width 为浮点数形态的数字,分别为 PDF 页面的高度和宽度。成功则传回 true 值。


 
 
参考 


PDF_end_page()  

 

--------------------------------------------------------------------------------
 函式:PDF_end_page() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_end_page
关闭 PDF 档案页面。

语法: boolean pdf_end_page(int pdfid);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来关闭 PDF 档案页面,并设定页面大小。参数 pdfid 为 PDF 档案代码。成功则传回 true 值。


 
 
参考 


PDF_begin_page()  

 

--------------------------------------------------------------------------------
 函式:PDF_show() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_show
输出字串到 PDF 档案。

语法: boolean pdf_show(int pdfid, string text);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来送出文字字串到 PDF 档案中。参数 pdfid 为 PDF 档案代码。参数 text 为欲加入的字串。成功则传回 true 值。


 
 
参考 


PDF_show_xy()  PDF_set_text_pos()  PDF_set_font()  

 

--------------------------------------------------------------------------------
 函式:PDF_show_xy() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_show_xy
输出字串到指定坐标。

语法: boolean pdf_show_xy(int pdfid, string text, double x-koor, double y-koor);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来送出文字字串到 PDF 档案中的指定坐标上。参数 pdfid 为 PDF 档案代码。参数 text 为欲加入的字串。参数 x-koor 及 y-koor 分别为 X, Y 二点坐标,为浮点数型态。成功则传回 true 值。


 
 
参考 


PDF_show()  PDF_set_text_pos()  PDF_set_font()  

 

--------------------------------------------------------------------------------
 函式:PDF_set_font() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_font
设定使用的字型及大小。

语法: boolean pdf_set_font(int pdfid, string fontname, double size, int encoding);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定指定的字型及字型大小,供程式有关字串输出使用。参数 pdfid 为 PDF 档案代码。参数 fontname 为字型名称。参数 size 为字型大小。参数 encoding 的内定值为 4,其数字如下 0 表 builtin、1 为 pdfdoc、2 为 macroman、3 表 macexpert 与 4 为 winansi。成功则传回 true 值。本函式需要 pdflib 2.0 以上方可支援。

 

--------------------------------------------------------------------------------
 函式:PDF_set_leading() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_leading
设定行距。

语法: boolean pdf_set_leading(int pdfid, double distance);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定输出文字间的行距。参数 pdfid 为 PDF 档案代码。参数 distance 为欲设定的行距值,为浮点数。使用本函式后会影响到 PDF_continue_text() 所输出的字串。执行成功则传回 true 值。


 
 
参考 


PDF_continue_text()  
 

--------------------------------------------------------------------------------
 函式:PDF_set_text_rendering() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_text_rendering
设定文字表现方式。

语法: boolean pdf_set_text_rendering(int pdfid, int mode);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定输出文字间的表现方法。参数 pdfid 为 PDF 档案代码。参数 mode 为 render 的方式,值如下表

数值 方式 
0 实心文字 
1 空心文字 
2 填满及空心文字 
3 透明文字 
4 实心文字并裁切向量 
5 空心文字并裁切向量 
6 填满及空心文字并裁切向量 
7 裁切向量 


执行成功则传回 true 值。

--------------------------------------------------------------------------------
 函式:PDF_set_horiz_scaling() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_horiz_scaling
设定文字水平间距。

语法: boolean pdf_set_horiz_scaling(int pdfid, double scale);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定文字的水平间距。参数 pdfid 为 PDF 档案代码。参数 scale 为欲设定的间距值,为浮点数。

 

--------------------------------------------------------------------------------
 函式:PDF_set_text_rise() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_text_rise
设定文字高度。

语法: boolean pdf_set_text_rise(int pdfid, double value);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定文字的高度。参数 pdfid 为 PDF 档案代码。参数 value 为欲设定的高度,为浮点数。

 

--------------------------------------------------------------------------------
 函式:PDF_set_text_matrix() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_text_matrix
设定文字矩阵。

语法: boolean pdf_set_text_matrix(int pdfid, array matrix);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定文字的矩阵。参数 pdfid 为 PDF 档案代码。参数 matrix 为阵列,最多可有六个元素。

 

--------------------------------------------------------------------------------
 函式:PDF_set_text_pos() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_text_pos
设定文字位置。

语法: boolean pdf_set_text_pos(int pdfid, double x-koor, double y-koor);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定文字的显示位置。参数 pdfid 为 PDF 档案代码。参数 x-koor 与 y-koor 均为浮点数,分别为 X、Y 的座标。在使用本函式后的 PDF_show() 会受到影响。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_set_char_spacing() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_char_spacing
设定字元间距。

语法: boolean pdf_set_char_spacing(int pdfid, double space);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定字元 (char) 的间距。参数 pdfid 为 PDF 档案代码。参数 space 为浮点数,为欲设定的距离。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_set_word_spacing() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_set_word_spacing
设定字间距。

语法: boolean pdf_set_word_spacing(int pdfid, double space);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定字 (word) 的间距。参数 pdfid 为 PDF 档案代码。参数 space 为浮点数,为欲设定的距离。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_continue_text() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_continue_text
输出文字。

语法: boolean pdf_continue_text(int pdfid, string text);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式输出文字到下一行。参数 pdfid 为 PDF 档案代码。参数 text 为欲输出显示的文字。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_stringwidth() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_stringwidth
计算字串的宽度。

语法: double pdf_stringwidth(int pdfid, string text);

传回值: 浮点数

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来计算指定字串的宽度。参数 pdfid 为 PDF 档案代码。参数 text 为欲计算的文字。成功则传回 true 值。

 

--------------------------------------------------------------------------------
 函式:PDF_save() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_save
储存环境变数。

语法: boolean pdf_save(int pdfid);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来储存目前的环境变数,有点像是 postscript 语法中的 gsave 指令,当平移或旋转某一物件又不要影响别的物件时,本函式就很有用了。参数 pdfid 为 PDF 档案代码。本函式通常配合 PDF_restore() 使用。


 
 
参考 


PDF_restore()  

 

--------------------------------------------------------------------------------
 函式:PDF_restore() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_restore
还原环境变数。

语法: boolean pdf_restore(int pdfid);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来还原之前储存的环境变数,有点像是 postscript 语法中的 grestore 指令,当平移或旋转某一物件又不要影响别的物件时,本函式就很有用了。参数 pdfid 为 PDF 档案代码。


 
 
使用范例 


以下为部份的例子

PDF_save($pdf);
// 在这儿旋转物件....等等。
PDF_restore($pdf);
?> 

 
 
参考 


PDF_save()  

 

--------------------------------------------------------------------------------
 函式:PDF_translate() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_translate
移动原点。

语法: boolean pdf_translate(int pdfid, double x-koor, double y-koor);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来移动原点。参数 pdfid 为 PDF 档案代码。参数 x-koor 与 y-koor 均为浮点数,分别为 X、Y 的移动距离。


 
 
使用范例 


下例先从 (0,0) 画条线到 (100, 100),再将原点向 X、Y 移动 (100, 100), 再画条 (0, 0) 至 (100, 100) 的线,形成 (-100, -100) 到 (100, 100) 的线。程式的前后省略。

PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
PDF_translate($pdf, 100, 100);
PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
?> 


--------------------------------------------------------------------------------
 函式:PDF_scale() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_scale
缩放物件。

语法: boolean PDF_scale(int pdfid, double x-koor, double y-koor);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来将物件放大或缩小。参数 pdfid 为 PDF 档案代码。参数 x-koor 与 y-koor 均为浮点数,分别为 X、Y 的缩放比例。


 
 
使用范例 


下例先设定 X, Y 均放大 72 倍,再从 (0,0) 画条线到 (1, 1),形成了 (0, 0) 到 (72, 72) 的线。

PDF_scale($pdf, 72.0, 72.0);
PDF_lineto($pdf, 1, 1);
PDF_stroke($pdf);
?> 
 

--------------------------------------------------------------------------------
 函式:PDF_rotate() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_rotate
旋转物件。

语法: boolean pdf_rotate(int pdfid, double angle);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来将物件旋转。参数 pdfid 为 PDF 档案代码。参数 angle 为旋转角度。

 

--------------------------------------------------------------------------------
 函式:PDF_setflat() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_setflat
设定平滑值。

语法: boolean pdf_setflat(int pdfid, double value);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定平滑值。参数 pdfid 为 PDF 档案代码。参数 value 为欲设定的平滑值,范围为 0 至 100。

 

--------------------------------------------------------------------------------
 函式:PDF_setlinejoin() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_setlinejoin
设定连线参数。

语法: boolean pdf_setlinejoin(int pdfid, int value);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定连线 (linejoin) 参数。参数 pdfid 为 PDF 档案代码。参数 value 为欲设定的值,范围为 0 至 2。

 

--------------------------------------------------------------------------------
 函式:PDF_setlinecap() 
--------------------------------------------------------------------------------
 


PDF 格式档案函式库


PDF_setlinecap
设定 linecap 参数。

语法: boolean pdf_setlinecap(int pdfid, int value);

传回值: 布林值

函式种类: 特殊档案格式


 
 
内容说明 


本函式用来设定 linecap 参数。参数 pdfid 为 PDF 档案代码。参数 value 为欲设定的值,范围为 0 至 2。

[ 资讯评论 ]
暂时没有任何评论!
[ 提交评论 ]
请选择表情
  • 昵称:
  • *
  • 验证码:
  • *点击更换验证码
  • 尚能输入个字符
申明:本网站部分分享内容来自网络,如有侵权请及时与我联系,谢谢,另网友评论仅代表个人观点,与本站立场无关,如果在评论中发表违反我国任何法律的,请即时与我们联系(QQ:77132915),我们将立即予以删除. [ 注:提交评论后,通过审核后方能在网站上显示!]