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(); $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); $clParameters = \OC::$server->getConfig()->getSystemValue('preview_office_cl_parameters', $defaultParameters);
$exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath); $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
shell_exec($exec); shell_exec($exec);
//create imagick object from pdf //create imagick object from png
$pdfPreview = null; $pngPreview = null;
try { try {
list($dirname, , , $filename) = array_values(pathinfo($absPath)); list($dirname, , , $filename) = array_values(pathinfo($absPath));
$pdfPreview = $dirname . '/' . $filename . '.pdf'; $pngPreview = $dirname . '/' . $filename . '.png';
$pdf = new \imagick($pdfPreview . '[0]'); $png = new \imagick($pngPreview . '[0]');
$pdf->setImageFormat('jpg'); $png->setImageFormat('jpg');
} catch (\Exception $e) { } catch (\Exception $e) {
unlink($absPath); unlink($absPath);
unlink($pdfPreview); unlink($pngPreview);
\OC::$server->getLogger()->logException($e, [ \OC::$server->getLogger()->logException($e, [
'level' => ILogger::ERROR, 'level' => ILogger::ERROR,
'app' => 'core', 'app' => 'core',
@ -69,10 +69,10 @@ abstract class Office extends Provider {
} }
$image = new \OC_Image(); $image = new \OC_Image();
$image->loadFromData($pdf); $image->loadFromData($png);
unlink($absPath); unlink($absPath);
unlink($pdfPreview); unlink($pngPreview);
if ($image->valid()) { if ($image->valid()) {
$image->scaleDownToFit($maxX, $maxY); $image->scaleDownToFit($maxX, $maxY);