إنشاء ملفات PDF بواسطة PHP ، طبع و تحميل
بسم الله الرحمن الرحيم ،طريقة تحويل صفحة معينة تقوم
بتصميمها بواسطة HTML و CSS إلى ملف بصيغة PDF و تحميلها أو عرضها بضغطة
واحدة ، لقد قمت بتصميم مثال بسيط يمكن تجربة ذلك بنفسك ثم تقوم بتطبيق و
تصميم فكرتك .
في هذا المثال نحتاج القليل من أكواد البرمجة PHP - HTML - CSS
1- تحميل مكتبة mpdf جاهزة من موقع Githup بواسطة الملحن composer ثم فتح الضغط و تعديل إسم المجلد حتى يكون بالمسار vendor/autoload.php
$ composer require mpdf/mpdf
2- ملف index.php سيكون بمثابة الصفحة التي بها أداة أو صندوق لإنشاء ملف PDF
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" >
<?php require_once '../src/header.php'; ?>
<style>
@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@300&display=swap');
*,*:before,*:after {
padding: 0;
margin: 0;
}
.container {
margin: 0 auto;
max-width: 450px;
font-family: 'Cairo', sans-serif;
font-size: 10pt;
}
.logo a img{
float: right;
width: 70%;
margin: 30px 15%;
}
.msg {
float: right;
width: 90%;
padding: 5px 5%;
background-color: yellow;
margin-bottom: 10px;
color: #333333;
text-align: center;
}
#forminput {
float: right;
width: 90%;
padding: 5%;
background-color: #cccccc;
}#forminput h3 {
float: right;
width: 100%;
padding: 5px 0px;
text-align: center;
background-color: #333333;
color: white;
}#forminput input[type="text"], #forminput input[type="submit"], #forminput textarea {
float: right;
padding: 10px 1%;
margin: 5px 1%;
border: 0px;
}#forminput input[type="text"]{
width: 46%;
}#forminput input[type="submit"]{
width: 48%;
background-color: darkslategrey;
color: white;
cursor:pointer;
}#forminput textarea {
width: 96%;
max-width: 96%;
min-width: 96%;
min-height: 200px;
}
</style>
<link rel="icon" href="http://www.dzworkers.com/files/logo/icon.png" >
<title>تحميل صفحة pdf</title>
</head>
<body>
<div class="container" >
<div class="logo" ><a href="http://www.dzworkers.com" ><img src="http://www.dzworkers.com/files/logo/logo.jpeg" /></a></div>
<?php
// -- DZWORKERS.COM ---------------- /|
// -- DESIGN BY AMMANI BOUMEDIENE -- /|
// -- 12-2021 | ALGERIA SBA -------- /|
// -- FB.COM/NEWMEDIENE ------------ /|
// --- ?>
<form id="forminput" method="POST" action="pdf.php" >
<h3 class="title" >عبأ الخانات الفارغة</h3>
<input type="text" name="title" required>
<textarea name="topic" ></textarea>
<input type="submit" name="dawnload" value="تحميلـ ملفـPDFـ" >
<input type="submit" name="showpage" value="عرضـ ملفـPDFـ" >
</form>
</div>
</body>
</html>
3- ملف pdf.php هو المسؤول على إنشاء الصفحة الخاصة التي تكون بصيغة pdf كما هو المسؤول عن التصميم الخاص بها و يكون مرتبط مع المكتبة mpdf عبر المسار vendor/autoload.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://www.dzworkers.com/files/logo/icon.png" >
<title>طبع الملف</title>
</head>
<body>
<?php
if(isset($_POST["dawnload"]) OR isset($_POST["showpage"])){
require_once __DIR__ . '/vendor/autoload.php';
// حجم الصفحة الحالي هو A4
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4-L']);
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
$mpdf->AddPage("P");
// تصميم الملف بلغة css
$style = "
.pdf{
float: right;
text-align: right;
width: 90%;
padding: 5%;
background-color: darkkhaki;
}.pdf h3{
float: right;
width: 90%;
padding: 0px 5%;
color: #333333;
font-weight: bold;
}.pdf p {
float: right;
width: 100%;
color: #333333;
}
";
$mpdf->WriteHTML($style,\Mpdf\HTMLParserMode::HEADER_CSS);
$title = strip_tags(trim($_POST["title"]));
$topic = strip_tags(trim($_POST["topic"]));
// تصميم الملف بلغة html
$html = "
<div class='pdf' >
<h3>".$title."</h3>
<p>".$topic."</p>
</div>
";
$mpdf->WriteHTML($html,\Mpdf\HTMLParserMode::HTML_BODY);
if(isset($_POST["dawnload"])){
// كود تحميل الملف و يمكن تغيير إسم الملف myPdf
$mpdf->Output("myPdf.pdf","D");
}
if(isset($_POST["showpage"])){
// كود عرض الملف و يمكن تغيير إسم الملف myPdf
$mpdf->Output("myPdf.pdf","I");
}
}else{
echo "Error !";
}//---- ?>
</body>
</html>