PHP में HTML और CSS को PDF में बदलें: पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: आपको HTML को PDF में क्यों बदलने की ज़रूरत हो सकती है?

\n

एक स्थिति की कल्पना करें: आपने अपनी वेबसाइट पर एक सुंदर इनवॉइस (चालान) बनाया, उसे HTML में डिज़ाइन किया, स्टाइल जोड़े, और सब कुछ परफेक्ट लग रहा है। लेकिन ग्राहक PDF फ़ाइल मांगता है। या फिर आपको ग्राफ़, टेबल और जटिल लेआउट वाली एक रिपोर्ट जनरेट करनी है। मैन्युअली PDF बनाना पुराने ज़माने की बात है। इससे कहीं आसान है HTML+CSS लिखना और फिर प्रोग्रामेटिक रूप से उसे PDF में बदल देना।

\n

Stack Overflow पर सवाल "How Can I add HTML And CSS Into PDF" को हज़ारों बार देखा गया है – इसका मतलब है कि यह समस्या कई डेवलपर्स के लिए प्रासंगिक है। इस लेख में हम PHP में ऐसा करने के तीन सबसे लोकप्रिय तरीकों पर चर्चा करेंगे, कोड उदाहरण दिखाएंगे, और आपके काम के लिए सबसे अच्छा टूल चुनने में मदद करेंगे।

\n\n

लाइब्रेरी की तुलना: Dompdf, TCPDF और mPDF

\n

कोड लिखने से पहले, आइए समझें कि क्या चुनें। PHP की दुनिया में HTML को PDF में बदलने के तीन मुख्य विकल्प हैं:

\n
    \n
  • Dompdf – हल्की लाइब्रेरी, CSS 2.1 और आंशिक रूप से CSS 3 को अच्छी तरह समझती है। सरल दस्तावेज़ों के लिए आदर्श।
  • \n
  • TCPDF – शक्तिशाली और स्थिर, लेकिन जटिल लेआउट के लिए अधिक कोड की आवश्यकता होती है। CSS के साथ उतना अच्छा नहीं है।
  • mPDF – सबसे अच्छा विकल्प अगर आपको जटिल CSS (flexbox, ग्रेडिएंट, पारदर्शिता) का सपोर्ट चाहिए। यह सबसे "CSS-फ्रेंडली" लाइब्रेरी है।

इस लेख में हम mPDF पर ध्यान केंद्रित करेंगे क्योंकि यह सबसे सुविधाजनक है, लेकिन तुलना के लिए Dompdf के उदाहरण भी दिखाएंगे।

Composer के माध्यम से लाइब्रेरी इंस्टॉल करना

सबसे पहले एक प्रोजेक्ट बनाएं और डिपेंडेंसी इंस्टॉल करें। टर्मिनल खोलें और यह कमांड चलाएं:

composer require mpdf/mpdf

अगर आप Dompdf आज़माना चाहते हैं:

composer require dompdf/dompdf

अब प्रोजेक्ट की रूट डायरेक्टरी में generate_pdf.php फ़ाइल बनाएं और कोड लिखना शुरू करें।

उदाहरण 1: mPDF के साथ सरल HTML को PDF में बदलना

चलिए सबसे बुनियादी उदाहरण से शुरू करते हैं। मान लीजिए हमारे पास एक इनवॉइस का HTML टेम्पलेट है:

<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        body { font-family: Arial, sans-serif; }\n        .invoice { max-width: 800px; margin: 0 auto; }\n        .header { background: #4CAF50; color: white; padding: 20px; }\n        .total { font-size: 24px; font-weight: bold; }\n    </style>\n</head>\n<body>\n    <div class="invoice">\n        <div class="header">चालान नंबर 123, दिनांक 01.03.2025</div>\n        <p>ग्राहक: राहुल शर्मा</p>\n        <table border="1" width="100%">\n            <tr><th>सेवा</th><th>मूल्य</th></tr>\n            <tr><td>वेबसाइट डेवलपमेंट</td><td>50,000 रुपये</td></tr>\n            <tr><td>SEO सेवाएं</td><td>15,000 रुपये</td></tr>\n        </table>\n        <div class="total">कुल: 65,000 रुपये</div>\n    </div>\n</body>\n</html>

अब PDF जनरेट करने के लिए PHP कोड:

<?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\n$html = file_get_contents('invoice.html'); // या सीधे HTML स्ट्रिंग\n\n$mpdf = new \\Mpdf\\Mpdf();\n$mpdf->WriteHTML($html);\n$mpdf->Output('invoice.pdf', 'I'); // 'I' – ब्राउज़र में खोलें, 'D' – डाउनलोड करें\n?>

स्क्रिप्ट चलाएं – और PDF तैयार है! ध्यान दें: mPDF ने <style> से CSS को अपने आप ले लिया। यही है सवाल "How Can I add HTML And CSS Into PDF" का जवाब – बस HTML को CSS के साथ WriteHTML() में पास करें।

उदाहरण 2: बाहरी CSS फ़ाइलों के साथ काम करना

अक्सर स्टाइल अलग फ़ाइलों में होते हैं। mPDF <link> के ज़रिए बाहरी CSS को सपोर्ट करता है:

<?php\n$html = '\n<!DOCTYPE html>\n<html>\n<head>\n    <link rel="stylesheet" type="text/css" href="style.css">\n</head>\n<body>\n    <h1>मासिक रिपोर्ट\n</body>\n</html>';\n\n$mpdf = new \\Mpdf\\Mpdf();\n$mpdf->WriteHTML($html);\n$mpdf->Output('report.pdf', 'D');\n?>

ब्लॉग

पुस्तक अनुशंसाएँ