Hướng dẫn export data to pdf in php - xuất dữ liệu sang pdf trong php

Đây là một hướng dẫn tính năng xuất khẩu PHP PDF khác, tôi sẽ tạo tập lệnh PHP đơn giản để tìm nạp dữ liệu từ MySQL và tạo tệp PDF bằng PHP. Chúng tôi sẽ sử dụng thư viện PHP FPDF của bên thứ ba.

FPDF là một lớp PHP rất tuyệt vời để tạo PDF bằng cách sử dụng PHP từ cơ sở dữ liệu MySQL. Đây là thư viện PHP nguồn mở để tạo tệp PDF bằng PHP.open source PHP library to generate pdf file using PHP.

PDF là một định dạng tệp rất phổ biến và phổ biến để đọc, xem và ghi định dạng tài liệu.pdf độc lập với phần mềm ứng dụng, phần cứng và hệ điều hành.

FPDF có các tính năng chính sau đây

  • Lựa chọn đơn vị đo lường, định dạng trang và lề.
  • Tiêu đề trang và quản lý chân trang.
  • Trang tự động và ngắt dòng với sự biện minh văn bản
  • Hỗ trợ hình ảnh (JPEG, PNG và GIF).
  • Màu sắc
  • Liên kết
  • TrueType, type1 và hỗ trợ mã hóa
  • Nén trang

Video hướng dẫn:

Nếu bạn thoải mái hơn khi xem một video giải thích về việc sử dụng thế hệ PDF, thì bạn nên xem video hướng dẫn này.

Có một phần mở rộng PHP phụ thuộc là ZLIB để cho phép nén và GD cho hỗ trợ hình ảnh GIF. Phiên bản mới nhất yêu cầu ít nhất Php 5.1.Zlib to enable compression and GD for GIF image support. The latest version requires at least PHP 5.1.

Hướng dẫn export data to pdf in php - xuất dữ liệu sang pdf trong php

Kiểm tra các hướng dẫn xuất khẩu PHP khác,

  • Xuất dữ liệu để xuất sắc với PHP và MySQL
  • Xuất dữ liệu sang CSV và tải xuống bằng PHP và MySQL
  • Nhập tệp CSV vào MySQL bằng Php
  • Xuất dữ liệu bảng HTML sang Excel, CSV, PNG và PDF bằng plugin jQuery
  • Xuất dữ liệu DataTable JQuery sang PDF, Excel, CSV và Sao chép

Chúng tôi sẽ làm theo các bước sau để tạo PDF

  • Tải xuống Thư viện FPDF từ fpdf.org
  • Chúng tôi sẽ tìm nạp dữ liệu từ cơ sở dữ liệu MySQL vào trang.
  • Chúng tôi sẽ sử dụng chức năng FPDF LIBS để tạo tệp PDF với tiêu đề và chân trang.

Bước 1: Chúng tôi sẽ tạo bảng nhân viên vào cơ sở dữ liệu MySQL. We will create employee table into MySQL database.

--
-- Table structure for table `employee`
--

CREATE TABLE IF NOT EXISTS `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
  `employee_name` varchar(255) NOT NULL COMMENT 'employee name',
  `employee_salary` double NOT NULL COMMENT 'employee salary',
  `employee_age` int(11) NOT NULL COMMENT 'employee age',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='datatable demo table' AUTO_INCREMENT=64 ;

Chúng tôi sẽ tạo một số dữ liệu mẫu và chèn nó vào bảng nhân viên.

--
-- Dumping data for table `employee`
--

INSERT INTO `employee` (`id`, `employee_name`, `employee_salary`, `employee_age`) VALUES
(1, 'Tiger Nixon', 320800, 61),
(2, 'Garrett Winters', 170750, 63),
(3, 'Ashton Cox', 86000, 66),
(4, 'Cedric Kelly', 433060, 22),
(5, 'Airi Satou', 162700, 33),
(6, 'Brielle Williamson', 372000, 61),
(7, 'Herrod Chandler', 137500, 59),
(8, 'Rhona Davidson', 327900, 55),
(9, 'Colleen Hurst', 205500, 39),
(10, 'Sonya Frost', 103600, 23),
(11, 'Jena Gaines', 90560, 30),
(12, 'Quinn Flynn', 342000, 22),
(13, 'Charde Marshall', 470600, 36),
(14, 'Haley Kennedy', 313500, 43),
(15, 'Tatyana Fitzpatrick', 385750, 19),
(16, 'Michael Silva', 198500, 66);

Bước 2: Hãy để kết nối cơ sở dữ liệu MySQL với PHP. Chúng tôi sẽ tạo tệp connection.php và thêm mã bên dưới. Let’s connect MySQL database with PHP. We will create connection.php file and add below code.

Class dbObj{
/* Database connection start */
var $dbhost = "localhost";
var $username = "root";
var $password = "";
var $dbname = "test";
var $conn;
function getConnstring() {
$con = mysqli_connect($this->dbhost, $this->username, $this->password, $this->dbname) or die("Connection failed: " . mysqli_connect_error());

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {
$this->conn = $con;
}
return $this->conn;
}
}

Tệp trên được sử dụng để kết nối và chọn cơ sở dữ liệu MySQL bằng PHP. Bạn cần thay đổi $ dbhost, $ username, $ password và $ dbname Biến giá trị với thông tin xác thực cơ sở dữ liệu của bạn.$dbhost, $username, $password, and $dbname variable’s value with your database credentials.

Bước 3: Chúng tôi sẽ tạo tệp generate_pdf.php và thêm mã bên dưới. We will create generate_pdf.php file and add below code.

Image('logo.png',10,-1,70);
    $this->SetFont('Arial','B',13);
    // Move to the right
    $this->Cell(80);
    // Title
    $this->Cell(80,10,'Employee List',1,0,'C');
    // Line break
    $this->Ln(20);
}

// Page footer
function Footer()
{
    // Position at 1.5 cm from bottom
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
    // Page number
    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}

$db = new dbObj();
$connString =  $db->getConnstring();
$display_heading = array('id'=>'ID', 'employee_name'=> 'Name', 'employee_age'=> 'Age','employee_salary'=> 'Salary',);

$result = mysqli_query($connString, "SELECT id, employee_name, employee_age, employee_salary FROM employee") or die("database error:". mysqli_error($connString));
$header = mysqli_query($connString, "SHOW columns FROM employee");

$pdf = new PDF();
//header
$pdf->AddPage();
//foter page
$pdf->AliasNbPages();
$pdf->SetFont('Arial','B',12);
foreach($header as $heading) {
$pdf->Cell(40,12,$display_heading[$heading['Field']],1);
}
foreach($result as $row) {
$pdf->Ln();
foreach($row as $column)
$pdf->Cell(40,12,$column,1);
}
$pdf->Output();
?>

Chúng tôi sẽ bao gồm tệp kết nối và PDF LIBS, để tùy chỉnh tiêu đề và chân trang của các tệp PDF, chúng tôi sẽ ghi đè các phương thức tiêu đề và chân trang và xác định thiết kế CSS của chúng tôi.

Bước 4: Chúng tôi sẽ tạo tệp index.php và thêm mã dưới đây. We will create index.php file and added the below code.


Simple Example of PDF file using PHP and MySQL




Generate PDF file from MySQL Using PHP

Chúng tôi đã thêm thẻ biểu mẫu HTML và xác định tệp giá trị hành động generate_pdf.php.

Conclusion:

Chúng tôi đã tạo tệp PDF bằng cơ sở dữ liệu PHP và MySQL, bạn cũng có thể tạo PDF bằng cơ sở dữ liệu khác. Bạn chỉ cần tạo kết nối với một loại cơ sở dữ liệu khác.

Bạn có thể tải xuống mã nguồn và xem bản demo từ liên kết dưới đây.