Попытка реализовать FPDF со всеми формами реализации, но работает только одна форма.Другие дают ошибку - PullRequest
0 голосов
/ 30 марта 2019

Установлен crabbley / fpdf-laravel согласно инструкции.Попробовал некоторый пример кода следующим образом:

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

Хотя создание экземпляра fpdf отличается от примеров в учебных пособиях, все работает, как ожидалось, и PDF отображается в браузере.Я получил этот рабочий пример из readme crabbley packagist.org/packages/crabbly/fpdf-laravel в разделе «Использование».Инструкции «использования» также предоставляют альтернативный экземпляр, а именно: $pdf = new Crabbly\FPDF\FPDF; В учебных примерах снова используется что-то немного другое, то есть

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

, и, таким образом, они немного отличаются.Когда я изменил его так же, как учебник, я изменил только строку создания экземпляра с

$pdf= app('FPDF');

до

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

, и я получил ошибку 'Class' App \ Http\ Контроллеры \ FPDF 'не найдены'.Я не понимаю разницы между различными формами реализации и не уверен, что происходит, но мне нужен последний формат, чтобы я мог установить ориентацию страницы и т. Д. Я также попробовал формат использования, как описано выше, с той же ошибкой, то естьновый Crabbly \ FPDF \ FPDF не найден.Я пробовал оператор require, но FPDF не найден, и я не уверен, где указать 'require' на.

Установка состояла из: composer require crabbly / fpdf-laravel add Crabbly \ FPDF \ FpdfServiceProvider :: class дляconfig / app.php в разделе провайдеров

Будем благодарны за любые предложения.

1 Ответ

0 голосов
/ 30 марта 2019

Вы используете реализацию для платформы Laravel, которая связывает экземпляр FPDF с контейнером службы.Использование app('FPDF') возвращает вам новый экземпляр FPDF, который в значительной степени совпадает с тем, что делал бы new FPDF().

Способ использования require не зависит от фреймворка и будет способом использования FPDF.если вы просто используете простой скрипт PHP.Хотя вы можете использовать этот способ и с Laravel, зачем вам это делать?

Причина, по которой require не работает, кстати, в том, что файл fpdf.php не найден откудаВы называете это.Требуется сидеть в том же каталоге, если вы не дадите ему путь.Учитывая, что вы установили его с помощью composer, сценарий fpdf.php, если таковой имеется, должен находиться в каталоге vendor.

Однако, просто воспользуйтесь контейнером службы.Строка $pdf = new FPDF('L', 'mm','A4'); просто создает новый экземпляр класса FPDF и инициализирует его, передавая аргументы конструктору: это «L» для альбомной ориентации, «мм» для единицы измерения и «А4» для размера страницы.Не зная пакета, который вы используете, и не протестировав его, вы также сможете установить их эквивалентно, позвонив по номеру:

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

Надеюсь, это поможет!

...