![](/img/trans.png)
[英]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.