2011-11-10 11 views
1

私は同様の質問を検討したが、使用して当社のWebプロジェクトの私の問題世代遅いPDF(Yiiのフレームワーク)

環境のための解決策を見つけていない:

  • リスト項目
  • のYiiフレームワーク(ZendのエンジンV2.3.0)
  • PHP 5.3.8
  • サーバーOS Fedora15
  • のJava 1.6.0_22
  • Apacheのバティック1.7のJava libに
  • のlibpng 2:1.2

私たちのプロジェクトは、(ZendのPDFファイルのクラスを使用して)dynamicaly PDF文書を生成します。ウェブ上で、

PDF生成は、画像をPNG形式に2 PNG-画像(SVG形式およびJavaにPOSTデータを送っチャートは、彼(SVG変換)が含ま程度2ページ、のために完了するために、10〜AROUT秒かかりますハイチャートのjs-libで生成されたチャートからpngへ)。

スピードアップの生成プロセスが必要です。

我々のコードの一部:

public function actionQuery() 
{ 
    ... 
    $xxExporter->generatePdf($request, $someAdditionalData); 
    ... 
    $xxExporter->httpOutputFile(); 
    ... 
    Yii::app()->end(); 
} 

public function generatePdf(CHttpRequest $request, array $someAdditionalData) 
{ 
    initRequest($request, $someAdditionalData); 
    ... 
    ...attachItemToPdf.. 
    ... 
    setMetaData 
    ... 
} 

public function httpOutputFile() 
{ 
    $this->pdf->save($filename); 

    header("Content-Disposition: attachment; filename=\"{$this->filename}.pdf\""); 
    header("Content-type: application/pdf"); 
    header("Content-length: " . filesize($filename)); 

    echo file_get_contents($filename); 
    unlink($filename); 
} 

は、JavaでPNG形式にSVG変換:

$type = "-m {$this->fileType}"; 
$width = !empty($this->fileExportWidth) ? "-w {$this->fileExportWidth}" : ''; 
$outputFile = "-d {$this->fileExportTempName}"; 
$inputFile = $this->fileTempName; 

$errorString = exec("{$this->pathJava} -jar {$this->pathBatik} {$type} {$outputFile} {$indexed} {$width} {$inputFile}", $output, $return_var); 

明日私は、サーバーにいくつかのjpg-libがインストールしようとすると、JPGにPNGを交換しようとしますプロジェクトで

いくつかの追加情報が必要な場合はお知らせください。私はあなたにそれを伝えます。

誰かが私を助けることができますか?私は本当にこれを行う方法がわからない、私は知っているすべてを試してみました。

ご協力いただきありがとうございます。

+0

イメージ変換またはpdf作成の場合は、さらにプロセスを遅くする必要があります。少ないデータを使用して両方のプロセスをテストして、問題が存在するかどうかを確認することもできます。 –

+0

エクスポート機能に問題が見つかりました:2つのグラフがあり、非常にゆっくりと生成されました。約3秒 – itspoma

答えて

0

http://www.princexml.com/を試してみてください。非常に速く動作し、とても簡単です。

+0

ありがとう!しかし、私は単に "バティック"を "ImageMagick"に置き換えています:) – itspoma

関連する問題