同様の質問を確認しましたが、問題の解決策が見つかりませんでした
以下を使用したWebプロジェクトの環境:
- リスト項目
- yii フレームワーク (Zend エンジン v2.3.0)
- PHP 5.3.8
- サーバー OS Fedora15
- ジャバ 1.6.0_22
- Apache Batik 1.7 Java ライブラリ
- libpng 2:1.2
私たちのプロジェクトは動的にPDFドキュメントを生成します(Zend Pdfクラスを使用)。
PDF 生成は、約2 ページで完了するまでに約10 秒かかります。これには、2 つの png 画像 (svg 形式で POST データを送信するチャートと、Java で彼 (svg) を png 画像に変換したチャート) が含まれます。highcharts js-lib で生成された Web チャートでは、 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でsvgをpngに変換する:
$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 をサーバーにインストールして、プロジェクトで png を jpg に置き換えてみます。
追加情報が必要な場合はお知らせください。
誰かが私を助けることができますか?これを行う方法が本当にわかりません。知っていることはすべて試しました。
助けや提案をありがとうございました!!