【发布时间】:2021-09-11 13:54:58
【问题描述】:
我正在尝试使用 Unoconv 将 .docx 文件转换为 .pdf 文件。 Libreoffice 安装在我的服务器上,该脚本适用于服务器上的另一个网站。
使用use Unoconv\Unoconv; 行得到HTTP ERROR 500。
有人知道我为什么收到HTTP ERROR 500吗?
这是我的脚本:
<?php
require './Unoconv.php';
use Unoconv\Unoconv;
$originFilePath = './uf/invoice/17/word/202100021.docx';
$outputDirPath = './uf/invoice/17/pdf/202100021.pdf';
Unoconv::convertToPdf($originFilePath, $outputDirPath);
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=202100021.pdf");
?>
这是我的 Unoconv.php 脚本:
<?php
namespace Unoconv;
class Unoconv {
public static function convert($originFilePath, $outputDirPath, $toFormat)
{
$command = 'unoconv --format %s --output %s %s';
$command = sprintf($command, $toFormat, $outputDirPath, $originFilePath);
system($command, $output);
return $output;
}
public static function convertToPdf($originFilePath, $outputDirPath)
{
return self::convert($originFilePath, $outputDirPath, 'pdf');
}
public static function convertToTxt($originFilePath, $outputDirPath)
{
return self::convert($originFilePath, $outputDirPath, 'txt');
}
}
?>
【问题讨论】:
-
真的是反斜杠还是应该是正斜杠?
-
我认为 ik 应该是一个反斜杠。但我已经用正斜杠试过了:)
-
$result1在哪里声明和设置?我们没有看到这里涉及的所有代码 -
两个文件(您的脚本和 Unoconv.php)是否在同一个文件夹中?
-
@Alex 是的。该脚本和 Unoconv.php 位于同一文件夹中。 $result1 如果工作正常,你可以这样读:"$map1 ='map1'; $filename = 'test';"
标签: php libreoffice unoconv