最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 如何在php语言中使用PDF文档功能?

    写给Hunte:
    好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉.

    —————————————————-
    原作者:Perugini Luca (www.phpbuilder.com)
    译者:znsoft (http://www.phpease.com)
    —————————————————
    转载请保留以上信息,否则请不要转载!

    PHP捆绑PDFLIB库也许是最好的web出版平台了。一对典型的用法:

    需求小册子
    电子商务发货单

    通过这个指南,你可以学会怎样使用php4中的PDF扩展来创建PDF文档。
    我们也把焦点放在用mysql数据来创建PDF文档。

    内容摘要

    安装PDFLib 3.0.1 和有PDF支持的PHP4.01pl2(译注:你可以安装最新的php4.03pl1)

    提取PDF文档
    (我假设你有一点配置php的经验)

     

    安装PDFLib和有PDF支持的PHP。

    需求:

    PHP 4.02+ 从 http://php.net 下载
    PDFLib 3.0.1 从 http://www.pdflib.com 下载

    这是一个怎样让PDFLib3.0.1和php4一起工作的小秘方:(老外很幽默的^_^)

    直接从http://www.php.net下载 ext/pdf/pdf.c的补丁来支持PDFLib v 3.0.1

    下载PDFLib3.0.1从此处 http://www.pdflib.com
    适用的补丁你可以在此找到 http://www.pdflib.com/pdflib/patches.html

    配置,Make和安装PDFLib

    #./configure –enabled-shared-pdflib
    #make
    #make install
    你会使得 PDFLib 安装在 /usr/local/lib .

    配置 PHP
    #./configure –with-apxs=/usr/bin/apxs
    –with-gd –with-pdflib=/usr/local –with-mysql=/usr/local
    –with-config-file-path=/etc/httpd –with-zlib-dir=/usr
    –with-ttf=/usr/local/include
    –with-jpeg-dir=/usr –with-tiff-dir=/usr
    –with-system-regex=yes –enable-debug=no

    #make
    #make install

     

    更新系统库
    插入 /usr/local/lib 进 /etc/ld.so.conf (文件)

    #/sbin/ldconfig

     

    测试和验证
    现在你需要重启apache
    #apachectl restart

    拷贝pdfclock.php 到的httpd目录中(就是web目录)…测试….一切正常。

    重要信息

    要使得PHPLIb和字体一起工作你必须注意PDFLib手册中的UPR部分。
    最简单的用PDFLib使用字体的办法是拷贝PDFlib tar包中的标准UPR描述文件(fonts/pdflib.upr)到你的工作目录。

    提取PDF文档
    现在我们已经作好了如飞地生成PDF文档的条件!

    在这个小例子中我们要生成FLYStore公司的需求小册子,当然是从目录数据库中提取数据。

     

    准备数据库
    我假设你有一点数据库的经验,最小限度,我真的只希望你懂得怎样创建一个数据库并向其中插入表。
    创建表 catalogue:

    create table catalogue(
    id smallint(8) unsigned DEFAULT ‘0’ NOT NULL,
    item varchar(100) DEFAULT ” NOT NULL,
    description tinytext,
    img_data longblob,
    imgname varchar(60),
    imgsize varchar(60),
    imgtype varchar(60),
    price smallint(8) unsigned DEFAULT ‘0’ NOT NULL,
    PRIMARY KEY (id),
    KEY item (item(20))
    );

     

    送出MIME头信息
    为了让我们的正确地显示出来,我们需要送出正确的头信息到用户的浏览器。
    在PHP中我们可以用header函数实现。下面的代码送出正确的MIME类型到浏览器。

    header( "Content-type: application/pdf" );
    header( "Content-Disposition: attachment; filename=modulo.pdf" );
    header( "Content-Description: PHP3 Generated Data" );

     

    重要信息
    你必须知道的是在送出头信息前不能输出任何东西。一个常见的错误是在文件的开头存在空格。

    从mysql中取数

    这儿我们用一个从目录数据中提数据的简单代码片断。
    <?php

    $link = mysql_connect ("127.0.0.1", "flyadm", "flystore")
    or die ("Could not connect");

    mysql_select_db ("flystore", $link);

    $result = mysql_query ("SELECT * FROM catalogue", $link)
    or die ("Invalid query");

    $data = mysql_fetch_row ($result);
    ….
    ….
    mysql_close ($link);

    ?>

    生成PDF文件

    为了生成PDF文档,我们需要作经过以下步骤:

    打开一个PDF流,并使它和一个句柄关联:
    $pdf = PDF_open();

    (Optional) Set document information like Author, Title, Subject, etc
    (可选的)设置文档信息,如作者,标题,主题,等

    开始一个新页(PDF文件可以用不同的版面生成不同的页,比如肖像,前景…):
    PDF_begin_page($pdf, 595, 842);
    (可选的)设置一个超链接:
    PDF_add_outline($pdf, "Item ".$data[1]);

    选择字体类型, 尺寸 (pdf_set_font($pdf, "Helvetica-Bold" , 20, winansi);) 表现模式

    插入文本在X.y位置:
    PDF_show_xy($pdf, "Item : " .$data[1], 100, 700);

    或插入图片在X.Y位置:
    pdf_place_image($pdf, $im, 100, 300, 3);

    刷新文本缓冲区并关闭PDF流。
    PDF Coordinate Systems
    What we need to do to locate a string or picture in some part of the PDF page,
    在PDF页的很多地方我们需要定位字符串和图片,转换英制单位到DTP点值.

    在PDFLIB手册的45页写到:

     

    ".. .缺省的坐标系统的原点在页面的左下角,用DTP点作为单位:
    1 pt = 1 inch /72 = 25.4mm /72 = 0.3528 mm
    "

    这儿是生成PDF文件的代码片断:
    <?php

    $pdf = PDF_open();
    pdf_set_info_author($pdf, "Luca Perugini");
    PDF_set_info_title($pdf, "Brochure for FlyStore");
    pdf_set_info_creator($pdf, "See Author");
    pdf_set_info_subject($pdf, "FlyStore");
    PDF_begin_page($pdf, 595, 842);
    PDF_add_outline($pdf, "Item ".$data[1]);
    pdf_set_font($pdf, "Helvetica-Bold" , 20, winansi);
    pdf_set_text_rendering($pdf, 0);
    pdf_show_xy($pdf, "FlyStore Catalogue 2000",50,780);

    PDF_show_xy($pdf, "Item : " .$data[1], 100, 700);

    PDF_show_xy($pdf, "Description : " .$data[2], 100, 620);

    $im = PDF_open_jpeg($pdf, "pass4_sml.jpg");
    pdf_place_image($pdf, $im, 100, 300, 3);
    pdf_close_image ($im);

    pdf_stroke($pdf);
    PDF_end_page($pdf);
    PDF_close($pdf);

    ?>

    在最后,我要提示你这篇文章不是PDF教程,如果你需要更多的PDF文档的信息和用法,你可以访问
    http://www.pdfzone.com/ 和 http://www.planetpdf.com/.

    我希望对你有用。

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » 如何在php语言中使用PDF文档功能?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级