您的问题存在一些问题。
首先,你上面提到的Zend_Pdf属于ZF1,不是ZF2。如果您真的在谈论 ZF2,那么该类称为 ZendPdf 并且可以用作独立组件 - 您不需要有 ZF2 的完整副本可用于自动加载(composer 将生成一个自动加载器 - 您只需需要在你的脚本中require)。上次我检查时(诚然,那是几年前),这两个版本在功能上是等效的,所以您应该只使用与您实际使用的 Zend Framework 版本相匹配的版本。
这让我想到了下一个问题。因为我不完全确定你指的是哪个版本,所以我做了一个快速的文本搜索,发现setTextField()方法只存在于ZF1的Zend_Pdf,而不是与ZF2相关的ZendPdf类,所以我不确定您为什么在问题中提到 ZF2。但无论如何,在我发现之前我就想出了如何让 ZF2 版本工作,所以为了完整起见,我在下面包含了这两种方法。
另外,您的require_once 语句中有一个错误 - 它不应该在开头包含“.:”。现在开始我的实际答案。
从 Zend Framework 1 Standalone 加载 Zend_Pdf
这应该可行:
set_include_path( '/path/to/zf1/library' . PATH_SEPARATOR . get_include_path());
require_once( '/path/to/zf1/library/Zend/Loader/Autoloader.php' );
Zend_Loader_Autoloader::getInstance();
$pdf = new Zend_Pdf();
$pdf->pages[0] = new Zend_Pdf_Page( Zend_Pdf_Page::SIZE_A4 );
$pdf->pages[0]->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 24 );
$pdf->pages[0]->drawText( "Hello world!", 240, 400 );
$pdf->save( 'example.pdf' );
您显然需要调整上面代码中的路径以使其正常工作,但是一旦您这样做并运行脚本,您最终应该会创建 example.pdf。
从 Zend Framework 2 Standalone 加载 ZendPdf
使用项目页面上的说明从 github (https://github.com/zendframework/ZendPdf) 下载 ZendPdf 项目,或者如果您愿意,可以使用 git 直接克隆存储库。
进入ZendPdf所在的目录,运行composer install下载支持文件。
在同一目录(即ZendPdf 的项目根目录)中,创建一个名为test.php 的文件,其内容如下:
require 'vendor/autoload.php';
use ZendPdf\PdfDocument;
use ZendPdf\Page;
use ZendPdf\Font;
$pdf = new PdfDocument();
$pdf->pages[0] = new Page( Page::SIZE_A4 );
$pdf->pages[0]->setFont( Font::fontWithName( Font::FONT_HELVETICA ), 24 );
$pdf->pages[0]->drawText( 'Hello world!', 240, 400 );
$pdf->save( 'example.pdf' );
运行php test.php,应该会创建example.pdf文件。
第二个解决方案的魔力来自composer,它会为您创建autoload.php 文件。使用这种方法有很多很多好处,其中之一是您不必为了获得一个正常工作的自动加载器而安装 Zend Framework 2 的完整副本。