خروجی PDF از دیتابیس در PHP
سلام
با یک آموزش دیگه از سری آموزش های PHP در خدمتتون هستیم؛ حتما در برخی از وب سایت ها دیدید که انتهای هر مقاله کاربر فایل pdf همون مقاله وجود دارد و کاربر میتواند فایل PDF همان مقاله را دانلود کند. در این مقاله ی آموزشی می خواهیم تا با انجام چند مرحله ی خیلی ساده از جدوال مورد نیاز در دیتابیس توسط PHP خروجی PDF بگیریم، در ادامه همراه بپرسم باشید.
برای اینکه بتونیم خروجی PDF داشته باشیم از کتابخانه FPDF استفاده میکنیم. که یک کتابخانه محبوب و رایگان است، در ادامه میریم تا کار با این کتابخانه را یاد بگیریم.
شروع آموزش:
- ابتدا کتابخانه FDPF را از سایت fpdf.org دانلود کنید.
- جدولی به نام tbl_users با سطرها و ستون های زیر داریم:
- سپس به دیتابیس متصل میشویم، میتوانیم کدهای زیر را در فایلی به نام connection.php ذخیره کنیم و در صفحات خود این فایل را صدا بزنیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ |
Class dbObj{ /* Database connection start */ var $dbhost = "localhost"; var $username = "root"; var $password = ""; var $dbname = "beporsam"; 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; } } |
- سپس میخوایم یک کلاس بسازیم تا هر وقت این کلاس را صدا زدیم، بتوانیم با کمک آن فایل PDF را بسازیم؛ برای اینکار از کدهای زیر استفاده میکنیم و کدها را در فایلی به نام generate_pdf.php ذخیره میکنیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ ۵۱ ۵۲ ۵۳ ۵۴ ۵۵ ۵۶ |
<?php //include connection file include_once("connection.php"); include_once("fpdf.php"); class PDF extends FPDF { // Page header function Header() { // Logo $this->Image('logo.png',۱۰,-۱,۷۰); $this->SetFont('Arial','B',۱۳); // Move to the right $this->Cell(۸۰); // Title $this->Cell(۸۰,۱۰,'users List',۱,۰,'C'); // Line break $this->Ln(۲۰); } // Page footer function Footer() { // Position at 1.5 cm from bottom $this->SetY(-۱۵); // Arial italic 8 $this->SetFont('Arial','I',۸); // Page number $this->Cell(۰,۱۰,'Page '.$this->PageNo().'/{nb}',۰,۰,'C'); } } $db = new dbObj(); $connString = $db->getConnstring(); $display_heading = array('id'=>'ID', 'users_name'=> 'Name', 'users_age'=> 'Age','users_salary'=> 'Salary',); $result = mysqli_query($connString, "SELECT id, users_name, users_age, users_salary FROM users") or die("database error:". mysqli_error($connString)); $header = mysqli_query($connString, "SHOW columns FROM users"); $pdf = new PDF(); //header $pdf->AddPage(); //foter page $pdf->AliasNbPages(); $pdf->SetFont('Arial','B',۱۲); foreach($header as $heading) { $pdf->Cell(۴۰,۱۲,$display_heading[$heading['Field']],۱); } foreach($result as $row) { $pdf->Ln(); foreach($row as $column) $pdf->Cell(۴۰,۱۲,$column,۱); } $pdf->Output(); ?> |
در خط ۲ اومدیم و فایل connection.php را که کدهای اتصال به دیتابیس را داخلش نوشتیم import کردیم.
در خط ۳ فایل کتابخانه fpdf را ایمپورت کردیم(وقتی از سایت fpdf کتابخانه را دانلود کنید فایلی به نام fpdf.php را مشاهده میکنید که کتابخانه ما همین فایل هست).
در خط ۱۲ هم باید لوگوی خود را قرار دهید، لوگو در فایل PDF نمایش داده میشود.
مابقی کدها هم مربوط به کتابخانه هست که فایل PDF که میسازیم یک هدر، بدنه و فوتر دارد.
- در آخرین مرحله در فایل index.php میایم و یک form با دکمه قرار میدیم که action این فرم به فایل generate_pdf.php است که با زدن دکمه یک فایل PDF از محتویات دیتابیس ما ساخته میشود.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Simple Example of PDF file using PHP and MySQL</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"/> </head> <body> <div class="container" style="padding-top:50px"> <h2>Generate PDF file from MySQL Using PHP</h2> <form class="form-inline" method="post" action="generate_pdf.php"> <button type="submit" id="pdf" name="generate_pdf" class="btn btn-primary"><i class="fa fa-pdf"" aria-hidden="true"></i> Generate PDF</button> </form> </fieldset> </div> </body> </html> |
کار به اتمام رسید، به همین سادگی توانستیم تا خروجی PDF از دیتابیس تهیه کنیم، که میتوانید با توجه به سایت و اسکریپت خود آن را شخصی سازی کنید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید