簡體   English   中英

使用Zend_PDF和Zend Framework,用PHP加載庫嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM