私は同様の質問を検討したが、使用して当社の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を交換しようとしますプロジェクトで
いくつかの追加情報が必要な場合はお知らせください。私はあなたにそれを伝えます。
誰かが私を助けることができますか?私は本当にこれを行う方法がわからない、私は知っているすべてを試してみました。
ご協力いただきありがとうございます。
イメージ変換またはpdf作成の場合は、さらにプロセスを遅くする必要があります。少ないデータを使用して両方のプロセスをテストして、問題が存在するかどうかを確認することもできます。 –
エクスポート機能に問題が見つかりました:2つのグラフがあり、非常にゆっくりと生成されました。約3秒 – itspoma