添加图像
首先要为文档添加图片。在撰写本文时,Zend 框架只支持 JPEG 图片,但这种情况有可能会改变。
我们首先来创建一个图片对象,如下所示。
清单 4. 添加图片
复制内容到剪贴板
代码:
<?php
require_once 'Zend/Pdf.php';
$pdf = new Zend_Pdf();
$page = new Zend_Pdf_Page(Zend_Pdf_Const::PAGESIZE_LETTER);
$chompImage = new Zend_Pdf_Image_JPEG(
dirname(__FILE__) . '/chomp.jpg');
$pageHeight = $page->getHeight();
$pageWidth = $page->getWidth();
$imageHeight = 72;
$imageWidth = 72;
$topPos = $pageHeight - 36;
$leftPos = 36;
$bottomPos = $topPos - $imageHeight;
$rightPos = $leftPos + $imageWidth;
$page->drawImage($chompImage, $leftPos, $bottomPos, $rightPos, $topPos);
$pdf->pages[0] = ($page);
$pdf->save("chomp.pdf");
?>请注意:如果在 PHP 中没有可用的图片扩展库,在执行这个文件时就会出现错误。为解决这个问题,请打开您的 php.ini 文件,并将写有 extension=php_gd2.dll 的代码行的注释去掉。
创建真实的图片对象是不解自明的。我们只从一个文件中装载 JPEG。但从那开始,我们就需要思考关于定位的问题,这可就不那么明显了。
PDF 文档使用了与 PostScript 文件一样的准则。这意味着一切都以 “点” 来衡量,而非像素。1 英寸等于 72 点,所以如果我们想要一个长宽均为 1 英寸的图片,则需要将长和宽的值都设为 72。
至于实际的定位,坐标系的原点是页面的左下角。换言之,点 0,0 与左下角相对应,坐标值随页面高度和宽度的增加而增加。
所以,要将对象放到离页面顶部半英寸的地方,则需要将图片顶部的坐标设置为页面高度减去 36 点,或者说半英寸。同理,图片底部的坐标就是顶部坐标减去图片高度。因为要将图片放到左手的角落,所以要先把左边的坐标设置为 36 点,然后加上图片宽度作为右边的坐标值。
了解上述信息之后,就可以使用 drawImage() 方法将图片添加到实际的页面中。添加文本的过程与此类似。