Php 如何使用laravel dompdf库在laravel中生成PDF

Php 如何使用laravel dompdf库在laravel中生成PDF,php,laravel,pdf,dompdf,Php,Laravel,Pdf,Dompdf,我正在尝试使用laravel dompdf库生成pdf。我通过composer下载了这个软件包 composer require barryvdh/laravel-dompdf 我已经更新了我的config>>app.php 'providers' => [ .... Barryvdh\DomPDF\ServiceProvider::class, ], 'aliases' => [ .... 'PDF' => Barryvdh\DomPDF\F

我正在尝试使用laravel dompdf库生成pdf。我通过composer下载了这个软件包

composer require barryvdh/laravel-dompdf
我已经更新了我的config>>app.php

'providers' => [
    ....
    Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
    ....
    'PDF' => Barryvdh\DomPDF\Facade::class,
],
我在控制器中包含了PDF类

use PDF;
我的控制器HomeController.php

<?php

namespace App\Http\Controllers;
use PDF;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index(){
        $pdf = PDF::loadView('welcome');
        return $pdf->download('invoice.pdf');
    }
}
我的配置目录中没有生成dompdf.php。我试过了

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
但它显示了以下错误

PHP致命错误:未捕获的ReflectionException:中不存在类配置

C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\lighted\Container\Container.php:767 堆栈跟踪: C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\light\Container\Container.php(767): ReflectionClass->\uuuu构造('config')) C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\light\Container\Container.php(646): 照亮\Container\Container->build('config') C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\light\Container\Container.php(601): 照亮\Container\Container->resolve('config',数组) C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\lighted\Foundation\Application.php(740): 照亮\Container\Container->make('config',数组) C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\light\Container\Container.php(1210): 照亮\Foundation\Application->make('config')C:\U in C:\Users\asus\Desktop\Laravel\PDFGenerator\vendor\Laravel\framework\src\light\Container\Container.php 在线767


默认配置设置在config/dompdf.php中设置。将此文件复制到您自己的配置目录以修改值。可以使用以下命令发布配置:

php artisan vendor:publish
PDF::setOptions(['dpi' => 150, 'defaultFont' => 'sans-serif']);
在使用以下命令生成pdf之前,您仍然可以更改代码中的dompdf选项:

php artisan vendor:publish
PDF::setOptions(['dpi' => 150, 'defaultFont' => 'sans-serif']);
可用选项及其默认值:

rootDir: "{app_directory}/vendor/dompdf/dompdf"
tempDir: "/tmp" (available in config/dompdf.php)
fontDir: "{app_directory}/storage/fonts/" (available in config/dompdf.php)
fontCache: "{app_directory}/storage/fonts/" (available in config/dompdf.php)
chroot: "{app_directory}" (available in config/dompdf.php)
logOutputFile: "/tmp/log.htm"
defaultMediaType: "screen" (available in config/dompdf.php)
defaultPaperSize: "a4" (available in config/dompdf.php)
defaultFont: "serif" (available in config/dompdf.php)
dpi: 96 (available in config/dompdf.php)
fontHeightRatio: 1.1 (available in config/dompdf.php)
isPhpEnabled: false (available in config/dompdf.php)
isRemoteEnabled: true (available in config/dompdf.php)
isJavascriptEnabled: true (available in config/dompdf.php)
isHtml5ParserEnabled: false (available in config/dompdf.php)
isFontSubsettingEnabled: false (available in config/dompdf.php)
debugPng: false
debugKeepTemp: false
debugCss: false
debugLayout: false
debugLayoutLines: true
debugLayoutBlocks: true
debugLayoutInline: true
debugLayoutPaddingBox: true
pdfBackend: "CPDF" (available in config/dompdf.php)
pdflibLicense: ""
adminUsername: "user"
adminPassword: "password"
除去

这是为了流明而不是拉维。 您仍然需要指定字体。 这是我的方式:

$pdf = PDF::setOptions(['defaultFont' => 'dejavu serif'])->loadView('some_view', $data);
return $pdf->stream('filename.pdf');

关于配置呢?配置目录中没有生成dompdf.php文件。我用更多细节更新了我的问题。我解决了这个问题:我无法使用>>php artisan发布供应商:publish--provider=“Barryvdh\DomPDF\ServiceProvider”您的laravel版本是什么?致命错误:未捕获的ReflectionException:类配置在C:\Users\asus\Desktop\laravel\PDFGenerator\vendor\laravel\framework\src\Lightning\Container\Container.php:767中不存在