Я рассмотрел похожие вопросы, но не нашел решения для моей проблемы
Среда нашего веб-проекта с использованием:
- Элемент списка
- yii framework (Zend Engine v2.3.0)
- php 5.3.8
- сервер os Fedora15
- Java 1.6.0_22
- Apache Batik 1.7 java lib
- libpng 2: 1.2
Наш проект генерирует динамически PDF-документы (используя класс Zend Pdf).
Генерация PDF занимает arout ~ 10 секунд для завершения примерно 2 страниц , которые включают в себя 2 png-изображения (графики, отправляющие POST-данные в формате svg и java конвертировали его (svg) ) в изображение png; на веб-диаграммах, созданных с помощью jchar-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);
}
преобразование SVG в PNG с Java:
$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 в проекте.
если вам нужна дополнительная информация - дайте мне знать, я вам ее предоставлю.
Может ли кто-нибудь мне помочь? Я действительно не знаю, как это сделать, я перепробовал все, что знаю.
Большое спасибо за любую помощь или предложения !!