PHP - Laravel -将.docx转换为PDF格式

bprjcwpo  于 2023-06-25  发布在  PHP
关注(0)|答案(3)|浏览(258)

如何使用PHP Laravel将文档(docx)转换为PDF格式?
在转换之前,我使用PHPWord设置变量,之后,我想保存它或将其转换为PDF。

1tuwyuhd

1tuwyuhd1#

你需要在服务器上安装unoconv。此外,在服务器上需要运行exec()的权限。
1.安装unoconv
sudo apt-get install unoconv
1.添加下面的行来转换所需的docx文件到pdf.
exec(“doc2pdfsample-file.docxsample-file.pdf**”);

rsl1atfo

rsl1atfo2#

您可以使用PHPWord库读取.docx文件的内容,然后使用其他库(如Dompdf或mPDF)将内容转换为.pdf文件。下面是一个例子:

use PhpOffice\PhpWord\IOFactory;
use Dompdf\Dompdf;

$phpWord = IOFactory::load('path/to/file.docx');

$dompdf = new Dompdf();
$dompdf->loadHtml($phpWord->saveHTML());
$dompdf->render();
$dompdf->stream();

你也可以使用像“phpoffice/phpword”和“barryvdh/laravel-dompdf”这样的包

composer require phpoffice/phpword
composer require barryvdh/laravel-dompdf

然后在控制器中使用它们将docx转换为pdf

use PhpOffice\PhpWord\PhpWord;
use Barryvdh\DomPDF\Facade as PDF;

$phpWord = new PhpWord();
$phpWord->loadTemplate('path/to/file.docx');

$pdf = PDF::loadView('view', compact('phpWord'))->save('path/to/file.pdf');
rm5edbpk

rm5edbpk3#

你也可以使用像“phpoffice/phpword”和“barryvdh/laravel-dompdf”这样的包

composer require barryvdh/laravel-dompdf  
  composer require phpoffice/phpword

在config/app.php中注册服务提供程序
要注册服务提供者,请打开config/app.php文件。然后在'providers'数组末尾添加以下行:

'providers' => [
 .....
 Barryvdh\DomPDF\ServiceProvider::class,
]

另外,将以下行添加到末尾的“aliases”数组中。您可以使用任何别名,因为你想像我们已经使用'PDF',但您也可以使用别名一样'DoPDF','myPDF','PF'等

'aliases' => [
 .....
 'PDF' => Barryvdh\DomPDF\Facade::class,
]

然后在控制器中使用它们将docx转换为pdf

use PDF;
public function convertWordToPDF()
    {
            /* Set the PDF Engine Renderer Path */
        $domPdfPath = base_path('vendor/dompdf/dompdf');
        \PhpOffice\PhpWord\Settings::setPdfRendererPath($domPdfPath);
        \PhpOffice\PhpWord\Settings::setPdfRendererName('DomPDF');
         
        //Load word file
        $Content = \PhpOffice\PhpWord\IOFactory::load(public_path('result.docx')); 
 
        //Save it into PDF
        $PDFWriter = \PhpOffice\PhpWord\IOFactory::createWriter($Content,'PDF');
        $PDFWriter->save(public_path('new-result.pdf')); 
    }

相关问题