|
|
@ -21,6 +21,7 @@ class Convertor { |
|
|
|
public static function convert($to, $document, $tmp = false) |
|
|
|
{ |
|
|
|
$path = pathinfo($document); |
|
|
|
$extension = $path['extension']; |
|
|
|
$dir = $path['dirname']; |
|
|
|
$original = $dir . '/' . $path['basename']; |
|
|
|
if(!$tmp) { |
|
|
@ -29,6 +30,15 @@ class Convertor { |
|
|
|
$folder = storage_path('app/tmp/'); |
|
|
|
} |
|
|
|
|
|
|
|
$env = [ |
|
|
|
'HOME' => base_path() |
|
|
|
]; |
|
|
|
|
|
|
|
if ($extension == 'odt') { |
|
|
|
$to = $to . ':"$FILTER"'; |
|
|
|
$env['FILTER'] = 'OpenDocument Text Flat XML'; |
|
|
|
} |
|
|
|
|
|
|
|
Log::info('Running `soffice` to convert "' . $original . '" to "' . $to . '". Output folder: "' . $folder . '"'); |
|
|
|
Log::info( |
|
|
|
'COMMAND: ' . |
|
|
@ -41,20 +51,28 @@ class Convertor { |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
$process = new Process( |
|
|
|
[ |
|
|
|
'soffice', |
|
|
|
'--convert-to', |
|
|
|
$to, |
|
|
|
$original, |
|
|
|
'--outdir', |
|
|
|
$folder |
|
|
|
], base_path(), |
|
|
|
[ |
|
|
|
'HOME' => base_path() |
|
|
|
] |
|
|
|
// $process = new Process(
|
|
|
|
// [
|
|
|
|
// 'soffice',
|
|
|
|
// '--convert-to',
|
|
|
|
// $to,
|
|
|
|
// $original,
|
|
|
|
// '--outdir',
|
|
|
|
// $folder
|
|
|
|
// ], base_path(),
|
|
|
|
// [
|
|
|
|
// 'HOME' => base_path(),
|
|
|
|
// 'FILTER' => 'OpenDocument Text Flat XML'
|
|
|
|
// ]
|
|
|
|
// );
|
|
|
|
$process = Process::fromShellCommandline( |
|
|
|
"soffice --convert-to $to $original --outdir $folder", |
|
|
|
base_path(), |
|
|
|
$env |
|
|
|
); |
|
|
|
$process->run(); |
|
|
|
$process->run(null, $env); |
|
|
|
|
|
|
|
Log::info("OUTPUT: " . $process->getOutput()); |
|
|
|
|
|
|
|
if (!$process->isSuccessful()) { |
|
|
|
throw new ProcessFailedException($process); |
|
|
|