php - 使用 Unoconv 将 docx 转换为 pdf 时出错
问题描述
我正在尝试使用 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');
}
}
?>
解决方案
从包装代码开始,try...catch
首先获取错误消息:
<?php
try {
require 'Unoconv.php';
use Unoconv\Unoconv;
$map1 = $_SESSION['companyid'];
$filename = $result1['filename'];
$originFilePath = './uf/doc/'.$map1.'/word/'.$filename.'.docx';
$outputDirPath = './uf/doc/'.$map1.'/pdf/'.$filename.'.pdf';
Unoconv::convertToPdf($originFilePath, $outputDirPath);
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=".$filename.".pdf");
readfile($outputDirPath);
} catch (\Exception $e) {
die($e->getMessage());
}
推荐阅读
- angular - angular7应用程序和wordpress应用程序中的.htaccess问题
- java - 为什么我的代码在多次函数调用后泄漏内存?类加载器有问题吗?
- django - 我无法启动 Django 本地服务器
- java - JMS消息重投
- python - 如何在 Dataframe 下进行隐蔽?用于清理此 Datafram 的 Join
- kubernetes - 在 k8s centos7 裸机集群上重新创建部署/Pod 后,服务不允许访问 Pod 的流量:没有到主机的路由
- filter - 当字段值四舍五入时,ag-grid 数字过滤器不起作用
- python - 使用 tck = interpolate.bisplrep(x, y, z, kx=kx, ky=ky) 使用 x 和 y 值数组获取 z 值
- string - 返回一个数组
? 在科特林 - javascript - 处理 document.location (href) 更改