Merge pull request #10198 from tml1024/master

No need to convert to PDF with LibreOffice, just convert to PNG
This commit is contained in:
Morris Jobke 2018-07-13 16:21:36 +02:00 committed by GitHub
commit 7a5768e259
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 9 deletions

View File

@ -43,24 +43,24 @@ abstract class Office extends Provider {
$tmpDir = \OC::$server->getTempManager()->getTempBaseDir();
$defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId() . '/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir ';
$defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId() . '/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to png --outdir ';
$clParameters = \OC::$server->getConfig()->getSystemValue('preview_office_cl_parameters', $defaultParameters);
$exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
shell_exec($exec);
//create imagick object from pdf
$pdfPreview = null;
//create imagick object from png
$pngPreview = null;
try {
list($dirname, , , $filename) = array_values(pathinfo($absPath));
$pdfPreview = $dirname . '/' . $filename . '.pdf';
$pngPreview = $dirname . '/' . $filename . '.png';
$pdf = new \imagick($pdfPreview . '[0]');
$pdf->setImageFormat('jpg');
$png = new \imagick($pngPreview . '[0]');
$png->setImageFormat('jpg');
} catch (\Exception $e) {
unlink($absPath);
unlink($pdfPreview);
unlink($pngPreview);
\OC::$server->getLogger()->logException($e, [
'level' => ILogger::ERROR,
'app' => 'core',
@ -69,10 +69,10 @@ abstract class Office extends Provider {
}
$image = new \OC_Image();
$image->loadFromData($pdf);
$image->loadFromData($png);
unlink($absPath);
unlink($pdfPreview);
unlink($pngPreview);
if ($image->valid()) {
$image->scaleDownToFit($maxX, $maxY);