php实现word转pdf
使用 PHP 实现 Word 转 PDF
PHP 可以通过调用外部库或服务将 Word 文档转换为 PDF。以下是几种常见的方法:
使用 LibreOffice/UNOCONV
LibreOffice 提供命令行工具可以将 Word 文档转换为 PDF,PHP 可以通过 exec() 或 shell_exec() 调用该工具。
安装 LibreOffice:
sudo apt install libreoffice
PHP 代码示例:

$wordFile = '/path/to/document.docx';
$pdfFile = '/path/to/output.pdf';
// 使用 LibreOffice 转换
$command = "libreoffice --headless --convert-to pdf --outdir " . dirname($pdfFile) . " " . $wordFile;
exec($command, $output, $returnCode);
if ($returnCode === 0) {
echo "转换成功: " . $pdfFile;
} else {
echo "转换失败";
}
使用 PHPWord 和 TCPDF
PHPWord 可以读取 Word 文档,TCPDF 可以生成 PDF 文件。
安装依赖:

composer require phpoffice/phpword tecnickcom/tcpdf
PHP 代码示例:
require 'vendor/autoload.php';
$wordFile = '/path/to/document.docx';
$pdfFile = '/path/to/output.pdf';
// 读取 Word 文档
$phpWord = \PhpOffice\PhpWord\IOFactory::load($wordFile);
// 使用 TCPDF 渲染
$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'PDF');
$pdfWriter->save($pdfFile);
echo "转换成功: " . $pdfFile;
使用 Cloud API
如果本地环境不支持转换,可以使用云服务 API,如 GroupDocs、Zamzar 等。
示例(使用 Zamzar API):
$apiKey = 'YOUR_API_KEY';
$wordFile = '/path/to/document.docx';
$pdfFile = '/path/to/output.pdf';
$endpoint = 'https://api.zamzar.com/v1/jobs';
$targetFormat = 'pdf';
$postData = [
'source_file' => new CURLFile($wordFile),
'target_format' => $targetFormat
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Basic ' . base64_encode($apiKey . ':')
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if (isset($result['id'])) {
echo "转换任务已提交,ID: " . $result['id'];
} else {
echo "转换失败";
}
注意事项
- 使用 LibreOffice 需要服务器安装 LibreOffice 并支持命令行调用。
- PHPWord + TCPDF 可能无法完美保留原始格式,适合简单文档。
- 云 API 需要网络连接,可能涉及费用或调用限制。
选择合适的方法取决于具体需求和服务器环境。






