[英]PHP Zend Framework Zend_Pdf - number of pages of pdf document
[英]Using Zend_PDF and Zend Framework, Loading Libraries in PHP?
我是PHP新手,只使用过LAMP堆栈。 我想使用Zend_PDF使用PHP填写表格。 我遇到问题,并且相信我不知道如何正确加载Zend Framework(或一般而言的外部库)。 这是我目前拥有的:
<?php
include_path='.:/var/www/html/lib/';
require_once'.:/var/www/html/lib/Zend/Loader/ClassMapAutoloader.php';
$pdf = Zend_Pdf::load('.:/var/www/html/forms/test.pdf');
echo count($pdf->pages);
?>
我正在使用count();
作为测试,但我希望使用setTextField();
职能。 我没有某些指南中提到的“ /Loader/Autoloader.php”。
如何正确加载库,以便可以使用setTextField();
功能?
PHP 5.4.16,Zend Framework 2.4.4,CentOS7
您的问题有几个问题。
首先,您上面提到的Zend_Pdf
属于ZF1,而不是ZF2。 如果您真的在谈论ZF2,则该类称为ZendPdf
,可以用作独立组件-您不需要具有可用于自动加载的ZF2的完整副本(编写者将生成一个自动加载器-您只需要在您的脚本中require
)。 上次我检查(承认是几年前)时,这两个版本在功能上是等效的,因此您可能应该只使用与实际使用的Zend Framework版本相匹配的版本。
这把我带到下一个问题。 因为我不确定您要指的是哪个版本,所以进行了快速文本搜索,发现setTextField()
方法仅存在于ZF1的Zend_Pdf
,而不存在于与ZendPdf
相关的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
放置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副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.