7

この 2 日間、zend_pdf をスタンドアロンとして使用する方法についての回答を探していました。Google で見つけたものはすべて、どこにも見つからない pdf.php を参照しています。

ここで zend_pdf を見つけました ( https://github.com/zendframework/ZendPdf )

フレームワーク全体をサーバーにインストールしたくありませんし、人々に fpdf や tcpdf などを使用するように言われたくありません。zend_pdf は完璧なソリューションのようです。スタンドアロンで使用する方法を知りたいだけです。

明確な指示はありますか?

ありがとうございました

4

1 に答える 1

10

まず、ZendPdf言及している のバージョンは、もともと ZF2 に含まれていたが、2011 年にフレームワークから削除されたバージョンであることに注意してください。補足として、Matthew Weier O'Phinney に話を聞きました。 (ZF2 プロジェクト リーダー) は ZendCon 2012 でこれについて話し、誰かがこのクラスを維持するために手を挙げたい場合は、ZF2 フレームワークに戻すことができると述べました。

ここで説明している ZF2 バージョンは、意味的には ZF1 バージョンと同じですが、ZF2 開発者がメイン プロジェクトから分割することを決定する前に、名前空間への変換やその他のリファクタリングを行ったため、構文が異なります。 . 例のほとんど (もしかするとすべて?) はZF1のZendPdfものであり、自動ロードやその他の構文上の違いに対処しない限り、このバージョンでは機能しません。Zend_Pdf

私は今日までこのスタンドアロン バージョンを使用していませんでしたが、ZF2 フレームワークのソース コードのフォルダーを 1 つ含めない限り、結果の PDF ドキュメントがレンダリングされないことがわかりました。以下のサンプル コードを実行するには、ZF2 フレームワークのコピーを取得し、Github からダウンロードしたときに作成されZend/Memoryたフォルダーにフォルダーをコピーする必要があります。libraryZendPdf

これが完了すると、次のスタンドアロン PHP コードを使用ZendPdfして PDF ファイルを作成できるようになります。

<?php
function simpleBootLoader( $stack )
{
    require_once './library/' . 
                 str_replace( '\\', DIRECTORY_SEPARATOR, $stack ) .
                 '.php';
}

spl_autoload_register( 'simpleBootLoader' );

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' );

これは、どう考えても本番環境で使用できるコードではありません。初心者には、より堅牢なオートローダーが必要です。

とにかく、これで当面の問題が解決され、正しい方向に進むことを願っています。幸運を!

于 2013-02-06T03:47:08.710 に答える