我回顾了类似的问题,但未找到解决我问题的方法
我们的网络项目环境使用:
我们的项目生成dynamicaly pdf文档(使用Zend Pdf类)。
PDF生成需要 ~10秒来完成约 2页,其中包括2个png-images(以svg格式发送POST数据的图表和java转换他(svg)到png图像;在用highcharts 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将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。
如果您需要一些额外的信息 - 请告诉我,我会把它给你。
有人可以帮助我吗?我真的不知道该怎么做,我已经尝试过我所知道的一切。
非常感谢您的任何帮助或建议!