- 浏览: 156431 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
NickWar:
脚本很好用,感谢楼主分享
但我只能导出10篇文档的xml ...
原创使用google reader + PHP将iteye博客数据导入到wordpress中 -
再逢山水:
ninedoors 写道这位仁兄,还有一个问题,感觉挺诡异的, ...
ThinkPHP中M和D函数的区别 -
ninedoors:
这位仁兄,还有一个问题,感觉挺诡异的,却不知道原因。我在用th ...
ThinkPHP中M和D函数的区别 -
柏新星:
谢谢 最起码简单的了解了一些 呵呵
stdClass的介绍
为了能够使PHP具有操作PDF格式文档的能力,你必须先在你的系统里安装PDFLib扩展库,如果你使用的是Linux系统,你可以从 http://www.pdflib.com/pdflib/index.html下载一个并进行编译,如果你使用的是Windows系统,那就更简单了,只需要下载一个编译好的PDFLib库,然后在PHP的配置文件里把相应的行的注释去掉即可。
extension=php_pdf.dll
如果是动态装载,也可以是参照下面的命令:
此外,你还必须有一个Adobe Acrobat PDF阅读器,用来浏览PDF格式,如果你没有,你可以从 http://www.adobe.com/免费下载。
一旦你做好了前期准备,就可以创建PDF文件了,下面就是一个简单的例子:
然后保存成PHP文件,在浏览器里进行浏览,PHP就会执行上面的代码,它产生一个新的PDF文件,并保存到指定的位置。
现在我们分析一下什么的代码,要使用PHP创建PDF文件,有四个步骤:1,创建文档句柄;2,注册文档的字体和颜色;3,用PDFLib提供的函数向文件句柄写文字或画图;4,保存文档。
首先,创建PDF文档句柄,语法如下:
$pdf = PDF_new();
这个任务是由PDF_new()函数完成的,它返回一个PDF文档的句柄,这个句柄将会被后续的所有操作使用。
下一步要做的,就是给PDF文件一个名字,由PDF_open_file()函数完成,它需要先前创建的文件句柄和自定义的文件名做参数:
PDF_open_file($pdf, "PDFTest.pdf");
一旦我们创建了文档,就可以用PDF_begin_page()函数在其中插入新页面了:
PDF_begin_page($pdf, 595, 842);
然后用PDF_end_page()结束页面。
注意这里,在PDF_begin_page()函数里,有另外两个参数,他们分别代表页面尺寸的宽和高,单位是磅(point,1磅等于1/72英寸),或许在这里数学并不是你的强项,PHP还提供了大多数标准页面尺寸,象A4等,上面的例子就是使用A4的尺寸。
在调用PDF_begin_page()函数和PDF_end_page()函数之间的代码是向PDF文档了写内容的,内容可以是文字、图象以及几何图形等。例子中只是写了一行文字,先得到一个字体,然后把文字写到文档里。通过PDF_findfont()和PDF_setfont()函数选择和注册字体是很方便的,PDF_findfont()函数预备了一种文档中要使用的字体,需要的参数有字体的名字,使用的编码,字体是否要嵌入到PDF文件中。PDF_findfont()函数返回一个字体对象,它将会在PDF_setfont()函数里使用。
一旦我们设定了字体,就可以使用PDF_show_xy()函数向页面中的指定位置写字符串了。
PDF_show_xy()函数用来向页面写内容,最后两个参数是要写入的字符串的坐标位置,注意坐标的原点(0,0)是在文档的左下角。一旦文字写完了,页面就可以关闭了PDF_end_page(),当然你也可以写更多的页。所有的页面写完之后,用PDF_close()函数关闭文档,此时文档就回保存到调用PDF_open_file()函数时指定的文件名和路径下,文档句柄随之销毁。
PDFLib库能做的事情还远不止这些,还可以在页面里加入图象,我们以前面的文件为例,在文字的下面添加一个图象文件,下面的语句实现了添加图象功能:
是不是很简单?PDF_open_image_file()函数打开一个图形文件,可以接受的图象类型有:GIF, JPEG, TIFF 和 PNG,该函数返回图象句柄,PDF_place_image()函数利用前面的图象句柄,把图象插入到PDF文档中。注意这里的坐标位置是指图象的左下角,最后一个参数是图象显示时的比例因子,1是与实际大小一样显示,0.5是按原来尺寸的一半显示。
除了在PDF文档里画出现有的图象以外,PDF模块还提供了许多函数来让我们画出几何图形。比如:直线、圆、长方形等几何图案,下面就是一段画直线的实现方法:
extension=php_pdf.dll
如果是动态装载,也可以是参照下面的命令:
dl("php_pdf.dll");
此外,你还必须有一个Adobe Acrobat PDF阅读器,用来浏览PDF格式,如果你没有,你可以从 http://www.adobe.com/免费下载。
一旦你做好了前期准备,就可以创建PDF文件了,下面就是一个简单的例子:
// 创建一个新的PDF文档句柄 $pdf = PDF_new(); // 打开一个文件 PDF_open_file($pdf, "PDFTest.pdf"); // 开始一个新页面(A4) PDF_begin_page($pdf, 595, 842); // 得到并使用字体对象 $arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf, $arial, 10); // 输出文字 PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750); PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730); // 结束一页 PDF_end_page($pdf); // 关闭并保存文件 PDF_close($pdf); ?>
然后保存成PHP文件,在浏览器里进行浏览,PHP就会执行上面的代码,它产生一个新的PDF文件,并保存到指定的位置。
现在我们分析一下什么的代码,要使用PHP创建PDF文件,有四个步骤:1,创建文档句柄;2,注册文档的字体和颜色;3,用PDFLib提供的函数向文件句柄写文字或画图;4,保存文档。
首先,创建PDF文档句柄,语法如下:
$pdf = PDF_new();
这个任务是由PDF_new()函数完成的,它返回一个PDF文档的句柄,这个句柄将会被后续的所有操作使用。
下一步要做的,就是给PDF文件一个名字,由PDF_open_file()函数完成,它需要先前创建的文件句柄和自定义的文件名做参数:
PDF_open_file($pdf, "PDFTest.pdf");
一旦我们创建了文档,就可以用PDF_begin_page()函数在其中插入新页面了:
PDF_begin_page($pdf, 595, 842);
然后用PDF_end_page()结束页面。
注意这里,在PDF_begin_page()函数里,有另外两个参数,他们分别代表页面尺寸的宽和高,单位是磅(point,1磅等于1/72英寸),或许在这里数学并不是你的强项,PHP还提供了大多数标准页面尺寸,象A4等,上面的例子就是使用A4的尺寸。
在调用PDF_begin_page()函数和PDF_end_page()函数之间的代码是向PDF文档了写内容的,内容可以是文字、图象以及几何图形等。例子中只是写了一行文字,先得到一个字体,然后把文字写到文档里。通过PDF_findfont()和PDF_setfont()函数选择和注册字体是很方便的,PDF_findfont()函数预备了一种文档中要使用的字体,需要的参数有字体的名字,使用的编码,字体是否要嵌入到PDF文件中。PDF_findfont()函数返回一个字体对象,它将会在PDF_setfont()函数里使用。
$arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf,$arial, 10);
一旦我们设定了字体,就可以使用PDF_show_xy()函数向页面中的指定位置写字符串了。
PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750); PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730);
PDF_show_xy()函数用来向页面写内容,最后两个参数是要写入的字符串的坐标位置,注意坐标的原点(0,0)是在文档的左下角。一旦文字写完了,页面就可以关闭了PDF_end_page(),当然你也可以写更多的页。所有的页面写完之后,用PDF_close()函数关闭文档,此时文档就回保存到调用PDF_open_file()函数时指定的文件名和路径下,文档句柄随之销毁。
PDFLib库能做的事情还远不止这些,还可以在页面里加入图象,我们以前面的文件为例,在文字的下面添加一个图象文件,下面的语句实现了添加图象功能:
$image = PDF_open_image_file($pdf, "jpeg", "PDFImageTest.jpg"); PDF_place_image($pdf, $image, 50, 650, 0.25);
是不是很简单?PDF_open_image_file()函数打开一个图形文件,可以接受的图象类型有:GIF, JPEG, TIFF 和 PNG,该函数返回图象句柄,PDF_place_image()函数利用前面的图象句柄,把图象插入到PDF文档中。注意这里的坐标位置是指图象的左下角,最后一个参数是图象显示时的比例因子,1是与实际大小一样显示,0.5是按原来尺寸的一半显示。
除了在PDF文档里画出现有的图象以外,PDF模块还提供了许多函数来让我们画出几何图形。比如:直线、圆、长方形等几何图案,下面就是一段画直线的实现方法:
$pdf = PDF_new(); PDF_open_file($pdf, "LineExam.pdf"); PDF_begin_page($pdf, 595, 842); $arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf, $arial, 12); // 设定直线的颜色 PDF_setcolor($pdf, "stroke", "rgb", 0, 0, 0); // 在左上角放置一个Logo标识 $image = PDF_open_image_file($pdf, "jpeg", "logo.jpg"); PDF_place_image($pdf, $image, 50, 785, 0.5); // 在Logo标识下画出直线 PDF_moveto($pdf, 20, 780); PDF_lineto($pdf, 575, 780); PDF_stroke($pdf); // 在页面底部画出另外一条直线 PDF_moveto($pdf, 20,50); PDF_lineto($pdf, 575, 50); PDF_stroke($pdf); // 输出一些文字 PDF_show_xy($pdf, "Meng's Corporation", 200, 35); PDF_end_page($pdf); PDF_close($pdf);
发表评论
-
PHP stream_context_create()作用和用法分析
2013-04-03 10:28 0创建并返回一个文本数据流并应用各种选项,可用于fopen(), ... -
PHP - Iterator接口的解释
2012-12-06 14:23 902Iterator的接口定义如下: Iterato ... -
php中exec,system及passthru等函数用法
2012-08-13 10:49 1072由于PHP基本是用于WEB程 ... -
HTTP协议状态码详解(HTTP Status Code)
2012-08-13 10:41 1016使用php或者javascript都会 ... -
spl_autoload_register 函数详解
2012-06-19 11:45 6722spl_autoload_register (PHP 5 &g ... -
PHP 程序员学数据结构与算法之《栈》
2012-11-24 17:01 1254介绍 “要成高 ... -
MySQL字段类型
2012-03-13 12:21 894MySQL支持大量的列类型 ... -
20个数据库设计的最佳实践
2012-02-27 10:33 11141、使用定义明确的表或列名,并保持一致(例如,School、S ... -
PHP中curl_setopt的CURLOPT系列 选项(转)
2012-01-17 15:41 3453curl_setopt()函数将为一个CURL会话设置选项。 ... -
2011年最热门的开源PHP项目回顾
2012-01-01 12:07 1179本文来自于对活跃在SourceForge和GitHub上的项目 ... -
PHP开发者常犯的10个MySQL错误
2012-01-01 12:03 917数据库是WEB大多数应用 ... -
PHP XML操作类DOMDocument
2011-08-29 14:18 1377不得不自已写一个.XML ... -
二十五个顶级PHP模板引擎整理
2011-08-09 17:20 1051为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出 ... -
php接收二进制数据流转换成图片
2011-08-04 17:49 11460<?php /** * 图片类 * @au ... -
PHP性能优化贴士——产生高度优化代码
2011-07-19 09:43 989PHP是一种在服务器端执 ... -
PHP register_shutdown_function函数详解
2011-07-18 11:47 1427脚本时常死掉,而且并不总是那么好看. 我们可不想给用户 ... -
PHP程序员最常犯的11个MySQL错误
2011-06-30 15:58 721对于大多数web应用来说,数据库都是一个十分基础性的部 ... -
简述MVC思想与PHP如何实现MVC
2011-06-20 11:17 889我相信已经有很多这样 ... -
PHP中的生成XML文件的4种方法
2011-06-15 11:56 2517<?xml version="1.0&qu ... -
stdClass的介绍
2011-06-02 10:11 1103在PHP开发中,很多时候都会看到别人的代码里有 $use ...
相关推荐
PHP判断字符串编码是UTF-8还是GB2312的知识点主要包括两部分:一种是使用自定义函数进行判断,另一种是通过正则表达式和iconv函数进行判断。 第一种方法涉及到编写一个函数is_gb2312($str),其逻辑是遍历字符串中每...
1. **字符串转换**:可以将字符串在不同的字符编码之间转换,例如从ISO-8859-1到UTF-8,或者从GBK到UTF-8,这对于处理来自不同来源的数据非常有用。 2. **字符检测**:能够检测字符串是否是有效的UTF-8编码,避免...
在php开发中有时候会用到转码函数,比如iconv(),mb_convert_encoding()函数,在用函数转码的时候或者解码的时候我们有时候需要先判断当前字符串编码类型,不如是否是utf-8编码,是的话然后进行编码转换等操作。...
在处理网络数据和多语言文本时,常常需要判断字符串是否为UTF-8编码。UTF-8是一种可变长度的字符编码,能够表示Unicode标准中的所有字符。PHP作为一种流行的服务器端脚本语言,提供了多种内置函数和方法来检测字符串...
复制代码 代码如下:iconv(‘GBK’, ‘UTF-8//IGNORE’, ‘软件开发网’); // 将字符串由 GBK 编码转换为 UTF-8 编码 ...复制代码 代码如下:// 使用 iconv 转换并判断是否等值,效率不高function is_utf8 ($str) {
本示例主要探讨如何正确地截取UTF-8和GBK编码的中英文字符串,以适应特定的需求,例如微博的字数限制规则。 首先,我们要明白PHP内置的`strlen()`函数用于计算字符串的字节数,而非字符数。对于UTF-8编码的中文字符...
在实际应用中,为了自动判断并转换GB2312或GBK编码的字符串为UTF-8,可以使用以下示例函数: ```php function yang_gbk2utf8($str){ $charset = mb_detect_encoding($str, array('UTF-8', 'GBK', 'GB2312')); $...
下面我们将详细讨论如何使用PHP和`mb_detect_encoding`来判断网页是否是UTF-8编码,并进行相应的转换。 首先,`mb_detect_encoding`函数的基本用法如下: ```php mb_detect_encoding(string $str, string $...
在上述文件中,提供了一个PHP函数,该函数旨在兼容两种常见字符编码utf-8和gb2312,并能准确截取字符串。 首先,了解字符编码的概念是必要的。UTF-8是一种编码方式,它可以用来表示Unicode字符,通常用在国际化程序...
PHP字符串编码问题是许多使用PHP进行开发的程序员都会遇到的问题,特别是当处理多种语言文本时。在PHP中,不同的字符编码代表着不同的内存占用和处理方式,尤其UTF-8和GBK这两种编码,UTF-8编码的中文字符通常占用3...
此函数首先判断字符串长度是否超过设定的最大长度。若超过,则计算字符串中非ASCII字符的数量,并根据该数量决定如何截取字符串以避免出现乱码。最后,返回处理后的字符串。 #### 总结 在开发支持多语言的PHP Web...
在处理PHP中的字符串时,尤其是涉及到UTF-8编码的中文字符串时,常常会遇到字符串被错误地截取,从而产生乱码的问题。这通常是因为UTF-8编码中,一个中文字符可能由多个字节组成,简单的按字节截取可能会将一个中文...
在遍历过程中,根据字符的ASCII值判断当前字符是英文字符还是中文字符,再结合UTF-8编码的规则进行字符串截取。英文字符和半角标点符号直接截取,而中文字符则需要截取连续的三个字节。在截取过程中,还需要注意累计...
首先将输入的GB2312编码字符串转换为UTF-8,然后再转换回GB2312,通过比较长度来判断转换是否成功。 需要注意的是,`iconv`函数在处理编码转换时可能会遇到一些问题,比如当源字符串包含目标编码中不存在的字符时。...
在处理字符串数组的过程中,使用`mb_strlen()`计算字符串的长度,此函数可以处理多字节字符,如UTF-8编码的中文字符。接着,`mb_substr()`函数用于截取字符串,它能处理不同编码格式的字符串。在此实验中,截取了...
在用$text=iconv(UTF-8,GB2312,$text)过程中,如果遇到一些特别字符时,如:”—”,英文名中的”.”等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。 针对这的问题,可以用如下代码实现: $text=ico
这个函数遍历输入字符串中的每一个字符,判断是否为汉字。对于汉字(其ASCII值大于0xa0),调用`htou()`函数并生成对应的HTML实体(`&#...;`)来表示Unicode值,对于非汉字字符,直接输出其Unicode值。这样确保了...
因此,通过编写符合UTF-8编码规则的正则表达式,我们可以用来判断字符串是否为UTF-8编码。 一旦判断出字符串的编码类型,就可以使用mb_convert_encoding函数来执行编码转换操作。mb_convert_encoding函数是PHP多...