尝试使用所有形式的实例化实现 FPDF,但只有一种形式有效.其他人给出错误



按照说明安装了 crabbley/fpdf-laravel。尝试了一些示例代码,如下所示:

$pdf= app('FPDF');
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Swordsmen Class Times');
$pdf->Output();

虽然 fpdf 的实例化与教程中的示例不同,但所有实例化都按预期工作,并且 pdf 显示在浏览器中。我从克拉布利 packagist.org/packages/crabbly/fpdf-laravel"用法"下的自述文件中获得了这个工作示例。"用法"说明还提供了另一种实例化,即:$pdf = new CrabblyFPDFFPDF;教程示例再次使用略有不同的内容,即

require('fpdf.php');
x=new FPDF();

因此有点不同。当我将其更改为与教程相同时,我更改的只是实例化行

$pdf= app('FPDF');

$pdf = new FPDF('L', 'mm','A4');

我收到错误"找不到类'应用程序\http\控制器\FPDF'"。我不明白不同形式的实例化之间的区别,也不确定发生了什么,但我需要后一种格式,以便我可以设置页面方向等。我也尝试了上述使用格式,但出现了同样的错误,即找不到新的 Crabbly\FPDF\FPDF。 我已经尝试了require语句,但没有找到FPDF,我不确定将"require"指向哪里。

安装包括: 作曲家需要螃蟹/FPD-拉拉维尔 在提供程序部分添加 Crabbly\FPDF\FpdfServiceProvider::class 到 config/app.php

任何建议将不胜感激。

您正在使用 Laravel 框架的实现,该实现将 FPDF 实例绑定到服务容器。使用app('FPDF')会返回 FPDF 的新实例,这与new FPDF()的操作几乎相同。

使用它require方式与框架无关,如果您只是使用普通的 PHP 脚本,这将是使用 FPDF 的方式。虽然你也可以在Laravel上使用这种方式,但你为什么要这样做呢?

顺便说一下,require不起作用的原因是找不到 fpdf.php 文件,从您调用它的位置。除非您为其提供路径,否则需要将其位于同一目录中。考虑到您使用作曲家安装了它,fpdf.php脚本(如果有的话)应该位于供应商目录中。

但是,只需使用服务容器即可。该行$pdf = new FPDF('L', 'mm','A4');只是创建 FPDF 类的新实例,并通过向构造函数传递参数来初始化它,这些参数是"L"表示横向,"mm"表示度量单位,"A4"表示页面大小。在不知道您使用的包并对其进行测试的情况下,您还应该能够通过调用以下命令等效地设置它们:

$pdf = app('FPDF', ['L', 'mm', 'A4']);

希望对您有所帮助!

相关内容

最新更新