You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
<?php
|
|
|
|
namespace App\Ingest;
|
|
|
|
use Symfony\Component\Process\Exception\ProcessFailedException;
|
|
use Symfony\Component\Process\Process;
|
|
|
|
class OtherConvertor extends AbstractConvertor
|
|
{
|
|
public function execute()
|
|
{
|
|
$this->convertToDocx();
|
|
|
|
$convertor = new DocxConvertor($this->storage, "$this->directoryPath/document.docx");
|
|
|
|
$convertor->execute();
|
|
}
|
|
|
|
/**
|
|
* Convert doc,dot,rtf,odt,pdf,docx to docx
|
|
*
|
|
*
|
|
* @return string|void
|
|
*/
|
|
private function convertToDocx()
|
|
{
|
|
(new Process(['export HOME=' . env('USER_HOME_PATH')]))->run();
|
|
|
|
/**
|
|
* Convert doc,dot,rtf,odt to docx
|
|
*/
|
|
$process = new Process([
|
|
'soffice',
|
|
'--headless',
|
|
'--convert-to',
|
|
'docx',
|
|
$this->storage->path($this->path),
|
|
'--outdir',
|
|
$this->storage->path($this->directoryPath)
|
|
]);
|
|
|
|
$process->run();
|
|
|
|
if (!$process->isSuccessful()) {
|
|
throw new ProcessFailedException($process);
|
|
}
|
|
|
|
$this->deleteOriginalDocument();
|
|
}
|
|
}
|