您现在的位置: 军旅同心-旅游自驾-军旅文学 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 技术文章 >> 正文
基于PHP与XML的PDF文档生成技术
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005-9-10 14:35:32
     <text fontsize="12" fontlaguage="cn" align="left">单位:平方米</text>

  </head>

 

  <body>

     <table>

       <tr><th>品名</th><th>批号</th><th>等级</th><th>仓库</th><th>库位</th><th>数量</th><th>日期</th></tr>

        <tr><td>W2308</td><td>1234</td><td>a</td><td>01</td><td>0001</td><td>200</td><td>20020609</td></tr>     

    <tr><td>W2307</td><td>4321</td><td>a</td><td>01</td><td>0001</td><td>100</td><td>20020609</td></tr>

     </table>

   </body>

   <foot>

      <line top="5" bottom="5" size="50%" linetype="single" show="false"/>

      <text fontsize="12" fontlaguage="cn" align="center">建表日期:20020611</text>

   </foot>

</pdfreport>

        用XMLParser对该XML文档解析后,得到一个包含所有信息的对象树,我们可以非常方便的访问其中的内容。生成的PDF报表如下图:

 

 

 程序片断如下:

 

<?   include( "../include/pc_init.inc" );?>

<?   include( "xmlparser.inc" );

<?

$xmlobject=getRootNode("report.xml");

// get the attrs of root element

$pageSet=$xmlobject->attrs;

// get the report-head

$head=$xmlobject->nodes[0];

// code ignored...

?>

<?

 

  function draw_line(&$parent,$line){

    $line = &pc_create_object( $parent, "line" );

    $line->pc_set_linestyle( $line->attrs["LINETYPE"]);

    $line->pc_set_width( $line->attrs["SIZE"] );

    $line->pc_set_alignment( "center" );

    if($line->attrs["SHOW"]==false){

        $line->pc_set_linecolor( "white" );

    }

        $line->pc_set_margin( array( "top" => $line->attrs["TOP"], "bottom" => $line->attrs["BOTTOM"], "left" => 0, "right" => 0 ) );

   }

 

  function draw_text(&$parent,$text){

    // code ignored...

  }

  function draw_table(&$parent,$table){

       // code ignored...

  }

 

  function addhead(&$parent,$head){

    for($i=0;$i< $head->n;$i++){

        switch ($head->nodes[$i]->name){

            case "LINE":draw_line($parent,$head->nodes[$i]);break;

            case "TEXT":draw_text($parent,$head->nodes[$i]);break;

            }

        }

   }

//..

?>

<?

 // Create a PDF Document

  $PDF = &pc_create_pdf( array( "Author" => "cyman", "Title" => "a report example" ) );

 // Create an A4-format page

  $Page1 = &pc_create_page( $PDF, $pageSet["PAGETYPE"]);

  addhead($Page1,$head);

  $PDF->pc_draw();

?>

 

 

6.总结

          在几个月来的毕业设计过程中,虽然忙碌,却非常充实。通过对一个实际的课题的分析,研究,论证,实现。感觉收获颇多。目前,这套系统已投入使用,收到了非常满意的效果,可以很容易的做出美观实用的报表、单据等。但是,由于时间上的仓促以及自己水平的有限,这套系统仍有许多不足之处。其中最遗憾就是,没有能定义出一套对各种文档(包括报表、单据、手册等等)都通用的XML标记,并编制通用的程序将这个XML文档转化为PDF,就如同浏览器解析HTML一样。这样就不必为每一种文档都定义各自的XML标记并编写相对应的转换程序,可以大大提高工作效率。

      虽然毕业设计已经结束,但是我将会今后的日子里继续这个课题的研究。

上一页  [1] [2] [3] 


更多
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | 版权申明 | 网站公告 | 管理登录 |