编程

使用 LibreOffice 进行文件转换的 Laravel 包

73 2025-04-11 16:39:00

当处理多种文件格式时,文档转换可能会很痛苦。如果你正在构建一个涉及文档转换的应用程序,它将变得更加具有挑战性。

如果你要处理多种文件格式,如 .docx.pdf.odt 等,以及它们之间的相关转换,你可能需要使用不同的包。比如,可以使用 barryvdh/laravel-dompdf 包将 HTML 转换为 PDF,使用 phpoffice/phpword 将 Word 转换为 PDF 等。

如果你想用一个包转换所有这些格式怎么办?好吧,这就是一个名为 Doxswap 的软件包可以派上用场的地方。

本质上,Doxswap 是一个 Laravel 包,允许你使用 LibreOffice 转换文档。这意味着你可以毫不费力地将 .docx.pdf.odt 等转换为任何其他格式,因为所有繁重的工作都是由 LibreOffice 完成的。

此软件包的唯一先决条件是你需要在服务器上安装 LibreOffice。完成后,你可以使用 Composer 安装该软件包。

composer require blaspsoft/doxswap:0.1.0-beta

你可以发布配置文件。

php artisan vendor:publish --tag="doxswap-config"

该命令将在 Laravel 应用的 config 目录中发布 doxswap.php 配置文件。此处,你可以配置用于文件转换的 LibreOffice 的二进制文件的路径。

'libre_office_path' => env('LIBRE_OFFICE_PATH', '/usr/bin/soffice')

此外,你也可以在配置文件中设置 input_discoutput_disc,用以读取文件以及保存对应的转换后文件。

最后,下例显示如何使用该包进行转换,假如,我们要将 .docx 文件转换成 .pdf 文件。

use BlaspSoft\Doxswap\Doxswap;

$convertedFile = Doxswap::convert('file.docx', 'pdf');

更多该包的详情:blaspsoft/doxswap