使用PHPWORD TemplateProcessor将DOCx转换为pdf;

时间:2019-08-01 14:47:45

标签: php amazon-web-services phpword

我们当前在AWS服务器中移动,我正在使用PhpOffice \ PhpWord \ TemplateProcessor将docx转换为PDF。

我的问题是,pdf没有保存在目标路径中。它只在我们以前的服务器上工作。

我已经在AWS服务器上尝试了以下命令:

sudo chown www-data:www-data -R *

在目标路径中授予完全许可:chmod('path', 0777)

function loadTemplate($hasSmarttag = true) {
  $this->templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor(DATA_ROOT . $this->template['filename']);


  $tags = $this->placeholders($hasSmarttag);

  foreach($tags as $tag => $value)
  {
    $this->templateProcessor->setValue($tag, $value);
  }

  $temp = tempnam(DATA_ROOT . 'tmp/', 'con');


  $basename =  explode('.',basename($temp));
  $basename = $basename[0];

  $path = DATA_ROOT . 'tmp/'. $basename;

  if(is_file($temp))
    unlink($temp);

  mkdir($path, 0777,true);
  $tmpFolder = $basename ;

  $docx =  $path . '/Assignment Conditions.docx';

  $this->templateProcessor->saveAs($docx);

  // exec('"C:\Program Files (x86)\LibreOffice\program\soffice.exe" --headless --convert-to pdf:writer_pdf_Export --outdir ' .$path. ' "'.$docx. '"');

  exec($cmd="HOME=/tmp soffice --headless --convert-to pdf:writer_pdf_Export --outdir " .$path. " \"{$docx}\"");
  if(is_file($docx))
    unlink($docx);

  return $tmpFolder . '/Assignment Conditions.pdf';
}

没有错误,pdf不会保存在目标路径中。

0 个答案:

没有答案