Làm cách nào để tạo báo cáo bằng PDF trong PHP với MySQL?

Báo cáo mà bạn có thể thấy ở trên dựa trên mảng tham số sau xác định loại dữ liệu sẽ được hiển thị trong các cột của bảng

    $row = array(
        'text' => ,
        'weight' => ,
        'date' => ,
        'price' => ,
        'grp_id' => 
    );

Bạn có thể tìm thấy mã nguồn của ví dụ này trong các tệp gói XFPDFExample. php và XFPDFVí dụ. lớp. php

Cách sử dụng PHP PDF Table Class để tạo báo cáo PDF

Để có thể sử dụng gói PHP này, trước tiên cần tạo lớp con của riêng bạn mở rộng lớp XPDF

Lớp của bạn nên xác định mọi thứ bạn cần để định cấu hình bản trình bày của báo cáo để chỉ định các giá trị cho các khía cạnh sau

  • Đặt logo cho tiêu đề
  • chân trang
  • Phông chữ và màu sắc
  • cột bảng
    • tiêu đề cột
    • Nguồn dữ liệu cho nội dung
    • Chiều rộng
    • căn chỉnh
    • Định dạng
  • Tạo tổng số và dòng kết chuyển
  • Nhóm các dòng

Sau đó, báo cáo có thể được tạo bằng cách sử dụng lớp này để làm cho nó phù hợp để in

Tổng quan về các bước

  1. Triển khai lớp mẫu để xác định báo cáo
    1. Phông chữ/màu sắc, logo và chân trang
      1. Phông chữ và màu sắc
      2. Logo
      3. chân trang
    2. Định nghĩa cột của bảng ví dụ
      1. Sự miêu tả
      2. Và đây là mã cho nó
      3. Các dòng mã riêng lẻ được giải thích chi tiết hơn
      4. Tạo nội dung ô không được chứa trực tiếp trong dữ liệu hàng
    3. Nhóm các hàng với tiêu đề nhóm và tổng số nhóm
      1. Bắt đầu nhóm và xuất tổng phụ
      2. Đầu ra của tổng phụ cuối cùng ở cuối bảng
    4. Tiêu đề phụ, thao tác dữ liệu dòng trước khi xuất
  2. Sử dụng lớp ví dụ
    1. Bắt đầu bàn
    2. Chuyển dữ liệu
    3. Đóng bảng

Triển khai lớp mẫu để xác định báo cáo

Trong ví dụ này, lớp

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
7 được triển khai trong tệp XFPDFExample. lớp. php. Để tạo phần mở rộng của lớp ________ 18 , nó phải được gọi thông qua câu lệnh ________ 19

use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF

Chúng tôi thiết kế báo cáo trong hàm tạo của lớp. Trước hết, Constructor của lớp cha phải được gọi để khởi tạo

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...

Phông chữ và màu sắc

Có thể đặt phông chữ và màu sắc bằng các phương pháp khác nhau 

    $this->initGrid('xfpdf-sample.json');
0 và 
    $this->initGrid('xfpdf-sample.json');
1

Tuy nhiên, sẽ nhanh hơn và dễ dàng hơn nếu tất cả các cài đặt được thực hiện trong tệp JSON. (Điều này cũng có thể được sử dụng nhiều lần cho các báo cáo chuẩn hóa). Tệp này có thể được chuyển đến phương thức 

    $this->initGrid('xfpdf-sample.json');

    $this->initGrid('xfpdf-sample.json');

Cấu trúc của tệp JSON này tự giải thích và có thể tìm thấy trong tệp ví dụ được sử dụng tại đây

Logo

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
0

Logo được in căn phải trong tiêu đề. Theo mặc định, logo sẽ được thu nhỏ với chiều cao là 8 mm. Trong ví dụ, chúng tôi chọn chiều cao là 9mm cho Voi

chân trang

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
1

Số trang được mở rộng bằng tiền tố 'Trang. ', căn giữa được đặt một tác giả và căn phải ngày tháng mà không có đầu ra thời gian

Trình giữ chỗ sau được sử dụng

  • {PN}. Số trang
  • {NP}. tổng số trang
  • {D}. ngay hiện tại
  • {T}. thời gian hiện tại (không được sử dụng trong ví dụ)

(cài đặt mặc định là. trang và tổng số trang ở bên trái và ngày giờ hiện tại ở bên phải)
Ngày và giờ ở chân trang sẽ được định dạng theo cài đặt 

    $this->initGrid('xfpdf-sample.json');
3.

Có thể thay đổi Cài đặt ngôn ngữ từ mặc định hệ thống bằng phương pháp 

    $this->initGrid('xfpdf-sample.json');

Định nghĩa cột của bảng ví dụ

mô tả cột

Bảng trong ví dụ có 8 cột

  1. Một cột đánh số thuần túy

    • tiêu đề "Hàng"
    • chiều rộng 10mm
    • đúng đắn
    • đánh số tự động
    • đối với các dòng tổng, văn bản tương ứng phải được đặt trong cột này
  2. Một cột ngày

    • tiêu đề "Ngày"
    • chiều rộng 35mm
    • làm trung tâm
    • nội dung được chứa trực tiếp trong dữ liệu dòng
    • Định dạng "Thứ bảy, 03. 12. 2020"
  3. Cột văn bản 'bình thường'

    • tiêu đề "Văn bản"
    • chiều rộng động -> Cột trở nên rộng đến mức bảng lấp đầy toàn bộ chiều rộng của trang
    • còn biện minh
    • Nội dung được chứa trực tiếp trong dữ liệu dòng
  4. Cột có nội dung động

    • tiêu đề "Grp. "
    • chiều rộng 12mm
    • làm trung tâm
    • nội dung phải được tạo từ dữ liệu dòng
  5. Một cột có nội dung số

    • tiêu đề "Trọng lượng"
    • chiều rộng 20mm
    • đúng đắn
    • nội dung được chứa trực tiếp trong dữ liệu dòng
    • Định dạng với một chữ số thập phân và thêm "kg"
    • Tổng cộng phải được tính cho cột này
  6. Cột ký hiệu

    • Không có tiêu đề (tiêu đề cột được kết nối với cột trước đó)
    • chiều rộng 8mm
    • ký hiệu được chèn tùy thuộc vào giá trị của cột 'trọng số'
  7. Cột tiền tệ

    • tiêu đề "Giá"
    • chiều rộng 25 mm
    • đúng đắn
    • nội dung được chứa trực tiếp trong dữ liệu dòng
    • Định dạng bằng ký hiệu tiền tệ
    • Tổng phải được tính cho cột
  8. Một cột tính toán

    • tiêu đề "Cost per Kg"
    • chiều rộng 25 mm
    • đúng đắn
    • nội dung được tính từ dữ liệu dòng
    • Định dạng dưới dạng tiền tệ với ký hiệu tiền tệ

và đây là mã cho nó

Các dòng mã riêng lẻ được giải thích chi tiết hơn

Cột 1
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
4
  • ID cột 
        $this->initGrid('xfpdf-sample.json');
    5 xác định nội dung của cột dưới dạng số dòng tự động
  •     $this->initGrid('xfpdf-sample.json');
    6 xác định đầu ra của văn bản cho tổng số dòng trong cột này. Tất cả các cột tiếp theo được kết nối với cột này cho đến cột tổng tiếp theo
Cột 2
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
7
  • Nội dung của phần tử 'date' của dữ liệu dòng được hiểu là giá trị ngày tháng.
    Các giá trị được chấp nhận.
    • một đối tượng DateTime
    • một int dưới dạng dấu thời gian UNIX
    • một chuỗi được cố gắng phân tích cú pháp bằng 
          $this->initGrid('xfpdf-sample.json');
      7
  • Với 
        $this->initGrid('xfpdf-sample.json');
    8 cột được định dạng theo
        $this->initGrid('xfpdf-sample.json');
    9
Cột 3
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
1
  • Nội dung của phần tử 'văn bản' của dữ liệu dòng được sử dụng cho đầu ra
  • Với chiều rộng -1, cột được xác định là cột động. Điều này cung cấp cho Cột không gian còn lại có sẵn để lưới lấp đầy hoàn toàn chiều rộng của trang
Cột 4
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
2
  • ID cột duy nhất tự xác định
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    00 đảm bảo rằng phương thức 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    01 được gọi, trong đó nội dung mong muốn của ô có thể được tạo bằng cách sử dụng dữ liệu hàng. Phương thức 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    01 phải được nạp chồng trong lớp dẫn xuất
Cột 5
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
0
  • Nội dung của phần tử 'trọng lượng' của dữ liệu dòng được hiểu là một giá trị số
  •     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    03 cho biết tổng số sẽ được tính cho cột này
  • Với 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    04 cột được định dạng theo
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    05
Cột 6
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
1
  • Giá trị -1 làm tiêu đề cột cho biết tiêu đề cột được kết nối với tiêu đề của cột trước đó
  • Với ID cột đã xác định 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    06 phương thức 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    07 được gọi, trong đó hình ảnh được hiển thị phải được đặt
  • Để một ô trống tương ứng được xuất ra trong một dòng tổng trong cột này, 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    08 phải được đặt cho cột này sau cột tổng đã xác định trước đó. Tất cả các cột tiếp theo sẽ được kết nối cho đến khi một cột tổng khác xuất hiện hoặc đến cuối lưới
  • Chỉ mục cột được lưu trong 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    09 để sau đó có thể đặt vị trí và kích thước hình ảnh với 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    10
Cột 7
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
2
  • Nội dung của phần tử 'giá' của dữ liệu dòng được hiểu là một giá trị số
  •     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    03 cho biết tổng số sẽ được tính cho cột này
  • Với 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    12 cột được định dạng theo 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    13
Cột 8
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
3
  • Để tính giá trị từ dữ liệu hàng, cột được cung cấp ID cột (
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    14), ID này cũng gọi phương thức 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    07, trong đó nội dung mong muốn được tính toán và định dạng
  • Cần có
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    08 để xuất ra chính xác các dòng Tổng số
Kích hoạt đầu ra của dòng tổng
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
4
  •     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    17. Tổng số tiền ở cuối tài liệu
  •     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    18. Tổng phụ ở cuối mỗi trang
  •     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    19. Chuyển sang ở đầu trang (bắt đầu từ trang thứ 2)
Đặt văn bản cho các dòng tổng khác nhau
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
5

Văn bản được in trong cột đầu tiên mà cờ 

    $this->initGrid('xfpdf-sample.json');
6 đã đặt (thường là cột 1). Văn bản có thể chứa phần giữ chỗ '{PN}' cho trang hiện tại và '{PN-1}' cho trang trước

Đặt định dạng đầu ra cho tất cả các cột Ngày
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
6

Chuỗi định dạng phải tuân thủ nguyên tắc của hàm PHP 'strftime()'.
Xem https. //www. php. net/thủ công/vi/chức năng. strftime. php

Đặt định dạng đầu ra cho tất cả các cột Số
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
7
  • Một chữ số thập phân
  • Không có tiền tố
  • Phần mở rộng * 'kg' *

Dấu thập phân và dấu phân cách hàng nghìn được đọc từ cài đặt 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
41 

Có thể thay đổi Cài đặt ngôn ngữ từ mặc định hệ thống bằng phương pháp 

    $this->initGrid('xfpdf-sample.json');

Đặt kích thước và vị trí của hình ảnh trong cột biểu tượng
use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
8
  • chỉ mục cột đã được lưu khi cột được tạo
  • vị trí 1. 5 mm từ đầu dòng
  • vị trí 2. cách mép trái ô 5mm
  • chiều cao 3 mm
  • Không có chiều rộng nào được chỉ định nên tỷ lệ khung hình của đồ họa gốc được giữ lại

Tạo nội dung ô không được chứa trực tiếp trong dữ liệu hàng

Nếu nội dung của một ô được in không tồn tại trực tiếp trong dữ liệu hàng, thì có thể đặt một ID duy nhất cho cột này thay vì trường dữ liệu. Đầu ra mong muốn phải được tạo trong phương thức

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
43. Đây là điện tử. g. trường hợp nếu

  • dữ liệu chứa ID số và văn bản tương ứng phải được in
  • một kết quả tính toán dựa trên một số giá trị phải được in
  • định dạng đặc biệt là bắt buộc
  • giá trị được hiển thị phụ thuộc vào các yếu tố bên ngoài khác

Trong ví dụ này, cột 4, 5 và 8 được tạo nội bộ

ID duy nhất được xác định cho các cột này, được sử dụng khi các cột được tạo bằng 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
44

Quá trình xử lý được triển khai theo phương thức 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
43 

  1.     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    00
    Văn bản viết tắt tương ứng được gán ở đây thay vì giá trị dữ liệu số.

  2.     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    06
    Hình ảnh tương ứng được đặt tùy thuộc vào giá trị của trường dữ liệu hte 'trọng lượng'.

    • cờ đỏ nếu cân nặng > 35
    • cờ vàng cho các giá trị từ 20 đến 35
    • một lá cờ xanh cho tất cả những người còn lại
  3.     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    14
    Giá trị được tính từ dữ liệu hàng và được định dạng dưới dạng trường tiền tệ.

  4.     public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    49

Phương thức của lớp cha phải được gọi trong nhánh 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
49 

Nhóm các hàng với tiêu đề nhóm và tổng số nhóm

Để minh họa chức năng nhóm với tổng phụ, trong ví dụ cho mỗi tháng, một tiêu đề phụ và tổng phụ được đưa ra. Để có thể phản ứng với sự thay đổi của tháng, lớp triển khai thuộc tính

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
71 để giữ tháng của hàng hiện tại, được khởi tạo bằng một chuỗi trống

Các bước sau đây là bắt buộc

  • Bắt đầu nhóm và in tổng phụ
  • Đầu ra của tổng phụ cuối cùng ở cuối bảng

Bắt đầu nhóm và xuất tổng phụ

Để xác định xem một tháng có thay đổi trước khi một dòng mới được in hay không, phương thức 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
72 được quá tải trong lớp ví dụ. Phương thức này luôn được gọi TRƯỚC KHI đầu ra của một dòng mới

So sánh tháng của hàng hiện tại (

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
73) với tháng trước đó được lưu trữ trong 
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
74, có thể xác định liệu có sự thay đổi về tháng hay không.
Nếu tháng trước không phải là chuỗi rỗng (trường hợp này xảy ra khi in hàng đầu tiên. ), lệnh gọi 
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
75 in tổng phụ của tháng trước và đặt lại các giá trị đã tính cho tháng tiếp theo.
Sau đó, nhóm cho tháng mới (hoặc tháng đầu tiên) được bắt đầu bằng 
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
76. Nếu không có tham số 
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
77 được chuyển cho hàm này, thì chỉ tính toán nội bộ của các tổng phụ được bắt đầu lại, nhưng sẽ không có tiêu đề phụ nào được in.
Cuối cùng, tháng mới được lưu trữ trong thuộc tính 
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
71.

Đầu ra của tổng phụ cuối cùng ở cuối bảng

Để in tổng phụ cho tháng cuối cùng của báo cáo, điều này phải được xuất ra SAU dòng dữ liệu cuối cùng nhưng TRƯỚC xuất ra của tổng số trên. Vì điều này có thể hiểu được là không thể bị chặn trong

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
79, nên phương thức
    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
10 bị quá tải cho mục đích này, phương thức này phải luôn được gọi sau khi tất cả dữ liệu đã được truyền đi

Tại đây

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
11 được gọi lần cuối trước khi quá trình xử lý tiếp theo được chuyển sang lớp cha. (không được quên lời gọi của lớp cha trong bất kỳ trường hợp nào. )

Tiêu đề phụ, thao tác dữ liệu dòng trước khi xuất

Đôi khi, cần phải thay đổi dữ liệu cho một hàng do một tiêu chí cụ thể trước khi xuất hoặc để thêm thông tin bổ sung và/hoặc chèn tiêu đề phụ để nhận dạng tốt hơn. Đối với nhiệm vụ này, phương pháp

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
72 cũng sẽ là nơi thích hợp để thực hiện

use SKien\XFPDF\XPDF;

class ExampleXPDF extends XPDF
9

Lưu ý rằng tham số $ row được truyền dưới dạng tham chiếu. Do đó, những thay đổi đối với dữ liệu cũng ảnh hưởng đến mã gọi.
Trong lớp ví dụ, một trường dữ liệu được thay đổi đơn giản cho một hàng có số hàng cố định (# 47) và dòng này được bắt đầu bằng một tiêu đề phụ tương ứng. Trong trường hợp hàng thứ hai cố định (#56), chỉ có trường dữ liệu được thay đổi và sau đó dòng được in mà không có tiêu đề phụ.

Sử dụng lớp ví dụ

Báo cáo được tạo trong tệp

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
13. Các tệp cần thiết của gói được tích hợp thông qua trình tải tự động và lớp ví dụ được bao gồm

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
0

Đầu tiên, một phiên bản của lớp ví dụ được tạo và một số thông tin và tiêu đề được đặt

Với 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
14, thông tin tệp được thiết lập sẽ hiển thị trong tài liệu đã tạo dưới thuộc tính tài liệu

  • 'XFPDF'. Tiêu đề
  • 'Ví dụ'. Mô tả ngắn gọn
  • 'Các lớp PHP'. Tác giả
  • 'Từ khóa1, Từ khóa2,. '. từ khóa

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
15 đặt tiêu đề và mô tả ngắn tùy ý

  • Tiêu đề được căn trái trong phông chữ được chỉ định với 
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    16
  • mô tả ngắn cũng được căn trái trong một dòng mới trong phông chữ
        public function __construct(string $orientation = 'P') 
        {
            parent::__construct($orientation);
            ...
    17

Sau khi tất cả các cài đặt tài liệu đã được thực hiện, bảng có thể được tạo

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
1

Bắt đầu bàn

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
2

Cuộc gọi này bắt đầu tạo bảng

Chuyển dữ liệu

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
3

Để đơn giản, dữ liệu dòng trong ví dụ được tạo trong một vòng lặp for với các giá trị ngẫu nhiên và được truyền bằng 

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
18. Trong thực tế, trong hầu hết các trường hợp, dữ liệu sẽ đến từ truy vấn cơ sở dữ liệu hoặc một số nguồn dữ liệu khác. Điều này có thể trông như thế này

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
4

Beenden der Tabelle

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
5

Ở cuối bảng, hàm này được gọi, nếu cần, sẽ tạo tổng cuối và đóng bảng

Tạo tệp PDF

    public function __construct(string $orientation = 'P') 
    {
        parent::__construct($orientation);
        ...
6

Tải xuống hoặc cài đặt Gói này bằng Trình soạn thảo

Lớp XPDF được trình bày trong bài viết này có thể trong trang này cũng chứa các hướng dẫn về cách cài đặt nó bằng công cụ soạn thảo PHP sau

Làm cách nào để tạo báo cáo PDF trong php MySQL?

Tạo PDF bằng PHP từ cơ sở dữ liệu Mysql .
Bước 1. Lấy dữ liệu từ cơ sở dữ liệu MySQL vào trang
Bước 1. Tải xuống thư viện FPDF từ fpdf. tổ chức
Bước 2. Sao chép fpdf. php vào thư mục ứng dụng của bạn
Bước 3. Sử dụng thư viện fpdf như vậy

Làm cách nào để tạo báo cáo PDF trong php?

php yêu cầu('. /fpdf. php'); . '); . Upon execution, the PHP script will generate a PDF file in your browser.

Làm cách nào để chuyển đổi tệp php sang PDF bằng php?

PHP to PDF .
Mở tệp PHP của bạn bằng ứng dụng tiêu chuẩn trên máy tính của bạn như bình thường
Đi tới Tệp -> In hoặc chỉ cần nhấn. Điều khiển. +P. .
Chọn "Microsoft XPS Document Writer" làm máy in của bạn
Nhấp vào "OK" hoặc "In"
Chọn đích cho tệp XPS của bạn và nhấp vào "Lưu"

Làm cách nào để tải xuống tệp PDF trong cơ sở dữ liệu MySQL bằng php?

Trong bài viết này, chúng ta sẽ xem cách tải tệp PDF lên cơ sở dữ liệu MySQL bằng PHP. .
Tiếp cận. Đảm bảo bạn đã cài đặt XAMPP hoặc WAMP trên máy của mình. .
Tạo cơ sở dữ liệu và bảng
Tạo thư mục và tập tin
Tạo biểu mẫu. Với biểu mẫu HTML, chúng tôi đang thu thập dữ liệu từ người dùng bằng cách bật