Nếu bạn muốn biết chức năng cơ bản của laravel, hãy xem bài viết của tôi Ví dụ về Laravel Crud From Scratch. Đối với ví dụ này, chúng tôi sử dụng thư viện Dompdf.
Nó là trình kết xuất theo phong cách. nó sẽ tải xuống và đọc các biểu định kiểu bên ngoài, thẻ kiểu nội tuyến và các thuộc tính kiểu của các phần tử HTML riêng lẻ. Nó cũng hỗ trợ hầu hết các thuộc tính HTML trình bày
Laravel PDF
Để tạo tệp PDF trong ứng dụng Laravel, hãy sử dụng gói dompdf. Dompdf là trình chuyển đổi HTML sang PDF. Dompdf [hầu hết] là CSS 2. 1 bố cục HTML tuân thủ và công cụ hiển thị được viết bằng ngôn ngữ PHP.
Bạn có thể tạo tệp pdf từ chế độ xem bằng DomPDF. Để xuất thành PDF, chúng tôi cần ghi tệp xem. Sau đó, chúng tôi sẽ viết mã HTML và tải dữ liệu động từ cơ sở dữ liệu theo yêu cầu. Sau đó, chúng tôi sẽ xuất chế độ xem này dưới dạng tệp PDF
Nếu bạn đang sử dụng phiên bản cũ hơn của Laravel, hãy xem hướng dẫn này Cách tạo PDF trong Laravel 5 .
Cài đặt Laravel bằng lệnh sau
composer create-project --prefer-dist laravel/laravel laravelPDF
Bây giờ, vào bên trong thư mục và mở thư mục bên trong mã phòng thu trực quan
Bươc. 1 Tải xuống gói laravel-dompdf
Nhập lệnh sau để cài đặt gói laravel-dompdf
composer require barryvdh/laravel-dompdf
➜ laravel6 git:[master] composer require barryvdh/laravel-dompdf Using version ^0.8.5 for barryvdh/laravel-dompdf ./composer.json has been updated Loading composer repositories with package information Updating dependencies [including require-dev] Package operations: 5 installs, 0 updates, 0 removals - Installing sabberworm/php-css-parser [8.3.0]: Downloading [100%] - Installing phenx/php-svg-lib [v0.3.3]: Downloading [100%] - Installing phenx/php-font-lib [0.5.1]: Downloading [100%] - Installing dompdf/dompdf [v0.8.3]: Downloading [100%] - Installing barryvdh/laravel-dompdf [v0.8.5]: Downloading [100%] dompdf/dompdf suggests installing ext-imagick [Improves image processing performance] dompdf/dompdf suggests installing ext-gmagick [Improves image processing performance] Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: barryvdh/laravel-dompdf Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: laravel/ui Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully.
Bươc. 2 Định cấu hình gói ứng dụng Laravel
Vì vậy, hãy chuyển đến cấu hình >> ứng dụng. php và thêm cấu hình sau
'providers' => [ .... Barryvdh\DomPDF\ServiceProvider::class, ], 'aliases' => [ .... 'PDF' => Barryvdh\DomPDF\Facade::class, ],
Ở đây chúng tôi đang đăng ký nhà cung cấp dịch vụ đăng ký PDF cho ứng dụng của mình và đặt bí danh cho nó. Vì vậy, khi chúng tôi cần tạo PDF, chúng tôi cần đưa nó vào không gian tên của mình như,
use PDF;
Sau đó, chúng tôi khởi tạo một lớp PDF và sử dụng API của nó để nâng cao hơn nữa tệp PDF đã tạo
Bươc. 3 Tạo một tập tin lưỡi bố trí
Trong thư mục tài nguyên >> chế độ xem, tạo một tệp mới có tên là bố cục. lưỡi. php
Laravel CRUD Example@yield['content']
Bước 4. Tạo các tệp mô hình và di chuyển
Chúng tôi sẽ tạo các tệp mô hình và di chuyển bằng lệnh sau
php artisan make:model Disneyplus -m
Bây giờ, hãy chuyển đến [dấu thời gian]. tạo_disneypluses_table. php và thêm các cột
public function up[] { Schema::create['disneypluses', function [Blueprint $table] { $table->bigIncrements['id']; $table->string['show_name']; $table->string['series']; $table->string['lead_actor']; $table->timestamps[]; }]; }
Bây giờ, di chuyển cơ sở dữ liệu bằng lệnh sau
________số 8_______Bước 5. Tạo một bộ điều khiển và các tuyến đường
Bước tiếp theo là tạo DisneyplusController. tệp php
php artisan make:controller DisneyplusController
Bây giờ, thêm hai route bên trong routes >> web. tập tin php
composer require barryvdh/laravel-dompdf0
Bây giờ, tạo hai phương thức bên trong DisneyplusController. tập tin php.
composer require barryvdh/laravel-dompdf1
Hãy nhớ nhập mô-đun PDF bằng cách sử dụng PDF;
Bươc. 6 Tạo file blade form để nhập dữ liệu
Bây giờ, trong thư mục views, hãy tạo biểu mẫu. lưỡi. tệp php. Thêm đoạn mã sau
composer require barryvdh/laravel-dompdf2
Bước 7. Lưu trữ dữ liệu trong cơ sở dữ liệu
Bây giờ, chúng ta sẽ viết hai hàm bên trong DisneyplusController. tệp php
composer require barryvdh/laravel-dompdf3
Vì vậy, trong tệp trên, đầu tiên, chúng tôi đã hiển thị tệp biểu mẫu, sau đó bên trong chức năng lưu trữ, chúng tôi kiểm tra xác thực và sau đó lưu trữ dữ liệu vào cơ sở dữ liệu
Ngoài ra, hãy thêm các trường có thể điền vào bên trong Disneyplus. tệp mô hình php
composer require barryvdh/laravel-dompdf4
Bây giờ, đi đến tuyến đường này. http. // ấu trùng 6. thử nghiệm/disneyplus hoặc http. //máy chủ cục bộ. 8000/disneyplus
Bạn sẽ thấy một hình thức. Cố gắng lưu dữ liệu và nếu mọi thứ trong mã đều đúng, bạn sẽ thấy một mục nhập trong cơ sở dữ liệu
Bươc. 8 Tạo một file view để hiển thị dữ liệu
Trước khi tạo tệp xem, chúng ta cần thêm một tuyến đường bên trong web. php
composer require barryvdh/laravel-dompdf5
Bây giờ, hãy tạo một tệp dạng xem có tên danh sách. lưỡi. tệp php. Thêm đoạn mã sau
composer require barryvdh/laravel-dompdf6
Bây giờ, hãy thêm mã bên trong hàm index[] của DisneyplusController. tệp php
composer require barryvdh/laravel-dompdf7
Bây giờ, hãy truy cập http. // ấu trùng 6. kiểm tra/disneyplus/list hoặc http. //máy chủ cục bộ. 8000/disneyplus/danh sách
Bạn sẽ thấy danh sách các chương trình
Bươc. 9 Tạo đường dẫn tải file pdf
Thêm mã sau vào tệp tuyến đường
composer require barryvdh/laravel-dompdf8
Bây giờ, hãy cập nhật danh sách. lưỡi. php và thêm liên kết Tải xuống PDF
composer require barryvdh/laravel-dompdf9
Bươc. 10 Tạo pdf. lưỡi. tập tin php để thiết kế pdf của chúng tôi
Bạn có thể tạo phiên bản DOMPDF mới và tải một chuỗi HTML, tệp hoặc tên chế độ xem phiến. Bạn có thể lưu nó vào tệp hoặc luồng
Được rồi, bên trong thư mục dạng xem, hãy tạo một tệp có tên pdf. lưỡi. php và thêm đoạn mã sau
➜ laravel6 git:[master] composer require barryvdh/laravel-dompdf Using version ^0.8.5 for barryvdh/laravel-dompdf ./composer.json has been updated Loading composer repositories with package information Updating dependencies [including require-dev] Package operations: 5 installs, 0 updates, 0 removals - Installing sabberworm/php-css-parser [8.3.0]: Downloading [100%] - Installing phenx/php-svg-lib [v0.3.3]: Downloading [100%] - Installing phenx/php-font-lib [0.5.1]: Downloading [100%] - Installing dompdf/dompdf [v0.8.3]: Downloading [100%] - Installing barryvdh/laravel-dompdf [v0.8.5]: Downloading [100%] dompdf/dompdf suggests installing ext-imagick [Improves image processing performance] dompdf/dompdf suggests installing ext-gmagick [Improves image processing performance] Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: barryvdh/laravel-dompdf Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: laravel/ui Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully.0
Chúng tôi đã tạo một bảng đơn giản sẽ được tạo bên trong PDF
Bươc. 11 Viết chức năng điều khiển để tải xuống PDF
Viết đoạn mã sau bên trong DisneyplusController. tệp php
➜ laravel6 git:[master] composer require barryvdh/laravel-dompdf Using version ^0.8.5 for barryvdh/laravel-dompdf ./composer.json has been updated Loading composer repositories with package information Updating dependencies [including require-dev] Package operations: 5 installs, 0 updates, 0 removals - Installing sabberworm/php-css-parser [8.3.0]: Downloading [100%] - Installing phenx/php-svg-lib [v0.3.3]: Downloading [100%] - Installing phenx/php-font-lib [0.5.1]: Downloading [100%] - Installing dompdf/dompdf [v0.8.3]: Downloading [100%] - Installing barryvdh/laravel-dompdf [v0.8.5]: Downloading [100%] dompdf/dompdf suggests installing ext-imagick [Improves image processing performance] dompdf/dompdf suggests installing ext-gmagick [Improves image processing performance] Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: barryvdh/laravel-dompdf Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: laravel/ui Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully.1
Bây giờ, hãy truy cập http. // ấu trùng 6. kiểm tra/disneyplus/list hoặc http. //máy chủ cục bộ. 8000/disneyplus/list và nhấp vào liên kết Tải xuống PDF
Bạn sẽ thấy rằng nó tải xuống tệp PDF và mở nó;
Phần kết luận
Đây là một ví dụ đơn giản về Laravel PDF Generation. Cuối cùng, hướng dẫn của chúng tôi về Cách tạo PDF trong Laravel 8 đã kết thúc