أصبحت ملفات PDF اليوم واحدة من أكثر الطرق شيوعًا لمشاركة المستندات عبر الإنترنت. غالبًا ما يكون استخدام مستند PDF هو الخيار الأول سواء كنت بحاجة إلى تقديم مستندات عملائك لمقدمي خدمات الطرف الثالث مثل شركات التأمين أو البنوك ، أو ببساطة تحتاج إلى إرسال سيرتك الذاتية إلى صاحب العمل. يتيح لك العمل مع ملفات PDF مشاركة النص المنسق والارتباطات التشعبية والصور وحتى النماذج المختلفة القابلة للتعبئة التي تحتاجها.
في هذه المدونة ، سوف نفهم كيف يمكن للمرء املأ نماذج PDF باستخدام PHP وأداة معالجة هائلة لملفات PDF تُعرف باسم خادم PDFtk. سنشرح هنا كيف يمكن للمرء أن يعمل ديناميكيًا عن طريق إضافة البيانات في نموذج PDF من خلال نماذج Html.
A PDF قابل للتعبئة هو مستند PDF يحتوي على بعض الحقول القابلة للتحرير بدون برنامج محرر PDF. لملء ملف PDF القابل للتعبئة ديناميكيًا ، يتعين على المرء إنشاء نموذج HTML وربطه ديناميكيًا. لتحقيق ذلك ، سننشئ نص PHP.
فيما يلي الخطوة التالية وبعض البرامج والمكتبة لملء ملف PDF القابل للتعبئة.
المتطلبات الأساسية:
- خادم PDFtk - برنامج معالجة ملفات PDF
- ملحن - ملحن
- php-pdftk مكتبة لـ PDFtk
الخطوة 1) انتقل إلى ما سبق رابط خادم PDFtk وتثبيت خادم PDFtk وفقًا لنظام التشغيل الخاص بك.
بعد تثبيت البرنامج ، افتح موجه الأوامر وقم بتشغيل الأمر:
الخطوة 2) قم بإنشاء مجلد للبرنامج النصي على الخادم المحلي الخاص بك ، يمكن أن يكون اسم المجلد أي شيء. في هذه الحالة ، قمنا بإنشاء مجلد باسم: "ملء pdf"، أنشئ الآن index.php في مجلد pdf قابل للتعبئة.
www / public_html / fillabe-pdf / index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>How To Fill A Fillable PDF Form with PHP using PDFtk</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<form action="handler.php" method="POST">
<h1>Generate Fillable PDF Dynamically</h1>
<p>Fill the form and your data will fill in a PDF</p>
<div class="form-group row">
<div class="col-lg-6">
<input type="text" name="fname" class="form-control" placeholder="First Name">
</div>
<div class="col-lg-6">
<input type="text" name="lname" class="form-control" placeholder="Last Name" required>
</div>
</div>
<div class="form-group row">
<div class="col-lg-6">
<input type="email" name="email" class="form-control" placeholder="Email" required>
</div>
<div class="col-lg-6">
<input type="tel" name="phone" class="form-control" placeholder="Phone" required>
</div>
</div>
<div class="form-group">
<textarea name="message" cols="30" rows="10" class="form-control" placeholder="Your Message" required></textarea>
</div>
<button type="submit" class="btn btn-block btn-success">Sumbit</button>
</form>
</div>
</body>
</html>
إنشاء style.css ملف النموذج يبدو جيدًا. www / public_html / fillabe-pdf / style.css
body {
padding: 5rem 0;
}
.btn-block {
display: block;
width: 10%;
}
.btn-success {
color: #fff;
background-color: #0062cc;
border-color: #007bff;
}
.btn-success:hover {
color: #fff;
background-color: #0062cc;
border-color: #0062cc;
}
الخطوة3) يخلق composer.json ملف لتثبيت مكتبة PDFtk.
www / public_html / fillabe-pdf / composer.json
{
"name": "mrdigital/pdftk",
"autoload" : {
"psr-4" : {
"Classes\\":"./classes"
}
},
"require": {
"mikehaertl/php-pdftk": "^0.10.3"
}
}
بعد ذلك ، قم بتشغيل هذا الأمر:
يتطلب الملحن mikehaertl / php-pdftk ، يقوم هذا الأمر بإنشاء مجلد بائع وتنزيل مكتبة PDFtk.
الخطوة 4) تحقق من نموذج حقول ملف pdf القابلة للتعبئة وخريطة الحقول باستخدام handler.php ملف. ثم افتح ملف pdf القابل للتعبئة في أي برنامج محرر للتحقق من حقول الإدخال بأسماء الحقول المعينة. يمكنك استخدام هذا https://www.pdffiller.com/ موقع للحصول على اسم الحقل.
أيضا ، اقرأ: استخراج أي نوع من البيانات من ورقة Excel باستخدام وظيفة Azure
الخطوة 5) قم بإنشاء ملف معالج للتعامل مع طلبات النشر ، وتعيين قيمة حقول pdf لنشر قيمة النموذج.
www / public_html / fillabe-pdf / handler.php
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
exit;
}
define('ACCESSCHECK', TRUE);
require_once 'vendor/autoload.php';
use Classes\GeneratePDF;
$data = [
'name_field' => $_POST['fname'] .' ' . $_POST['lname'],
'email_field' => $_POST['email'],
'phone_field' => $_POST['phone'],
'enquiry_field' => $_POST['message']
];
$pdf = new GeneratePdf;
$response = $pdf->generate($data);
print_r($response);
الخطوة 6) إنشاء فئات مجلد من أجل إنشاء فئة توليد PDF.
www / public_html / fillabe-pdf / classes / GeneratePDF.php
<?php
namespace Classes;
if(!defined('ACCESSCHECK')) {
die('Direct access not permitted');
}
use mikehaertl\pdftk\Pdf;
class GeneratePDF {
public function generate($data)
{
try {
$filename = 'pdf_fillabel' . rand() . '.pdf';
$pdf = new Pdf('./test.pdf');
$pdf->fillForm($data)
->flatten()
->saveAs( './pdf_fill/' . $filename);
return $filename;
}
catch(Exception $e)
{
return $e->getMessage();
}
}
}
الخطوة 7) إنشاء pdf_fill مجلد لتخزين ملفات pdf القابلة للتعبئة.
الخطوة 8) حماية المجلد الخاص بك لأسباب أمنية ، إنشاء index.php ملف فارغ في الفصول و pdf_fill المجلد.
www / public_html / fillabe-pdf / classes / index.php أو www / public_html / fillabe-pdf / pdf_fill / index.php
<?php
// Nothing here
أيضا ، اقرأ: أفضل أطر تطوير تطبيقات الويب لعام 2022: احصل على أكبر قدر من قابلية التوسع بتكاليف أقل
في المخص:
مع التنفيذ أعلاه ، يمكنك تثبيت بدفتك وتعلم بعض أوامره المفيدة مثل تفريغ_بيانات_حقول و املأ النموذج. من خلال جميع الخطوات المذكورة أعلاه ، ستتمكن من تحقيق الوظيفة المخصصة القابلة للتعبئة بتنسيق pdf بنجاح.
يرجى ملاحظة أن هذا التنفيذ أساسي ، وقد حاولنا أن نجعل الأمور بسيطة قدر الإمكان. إذا كنت لا تزال تواجه بعض المشاكل ، فيمكنك الاتصال بنا فريق التطوير للحصول على أي مساعدة إضافية.
خدمات تطوير الويب
هل تبحث عن شركة تطوير ويب موثوقة؟ يمكّننا مطورو الويب ذوو المهارات العالية لدينا من تقديم خدمات تطوير الويب الموجهة نحو النتائج. اتصل بفريقنا لفهم كيف يمكننا مساعدتك في تحقيق أهداف عملك.