पीडीएफ में HTML और CSS कैसे जोड़ें: उदाहरणों के साथ PHP गाइड

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

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

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

परिचय: HTML+CSS को PDF में बदलना क्यों एक सिरदर्द है (और इसे कैसे हल करें)

\n\n

कल्पना करें: आप PHP पर एक वेबसाइट विकसित कर रहे हैं, और क्लाइंट कहता है: "बनाओ कि 'PDF डाउनलोड करें' बटन सुंदर चालान, रिपोर्ट या प्रमाणपत्र डाउनलोड करे।" आप सोचते हैं: "बहुत आसान! मैं HTML टेम्पलेट लूंगा, CSS स्टाइल जोड़ूंगा और इसे PDF में बदल दूंगा।" लेकिन वास्तविकता अधिक जटिल होती है: फ़ॉन्ट बदल जाते हैं, टेबल टूट जाती हैं, और CSS प्रॉपर्टी flexbox कभी-कभी काम करती है।

\n\n

Stack Overflow पर प्रश्न "How can I add HTML and CSS into PDF" ने हज़ारों बार देखा गया है। इसका मतलब है कि यह समस्या लगभग हर PHP डेवलपर से परिचित है। इस लेख में हम तीन लोकप्रिय लाइब्रेरी — Dompdf, TCPDF और mPDF — पर चर्चा करेंगे और दिखाएंगे कि PHP पर HTML को CSS के साथ PDF में सही तरीके से कैसे बदलें।

\n\n

आप जानेंगे:

\n
    \n
  • विभिन्न कार्यों के लिए कौन सी लाइब्रेरी चुनें
  • \n
  • CSS स्टाइल कैसे जोड़ें (बाहरी, इनलाइन, @import)
  • \n
  • सामान्य समस्याओं को कैसे हल करें: सिरिलिक, टेबल, इमेज
  • \n
  • HTML से PDF जनरेशन के लिए कार्यशील कोड कैसे लिखें
  • \n
\n\n

HTML को सीधे PDF के रूप में सेव क्यों नहीं कर सकते?

\n\n

ब्राउज़र HTML+CSS को बहुत अच्छी तरह रेंडर करते हैं, लेकिन PDF जनरेटर ब्राउज़र नहीं हैं। वे अपने स्वयं के रेंडरिंग इंजन का उपयोग करते हैं, जो सभी CSS प्रॉपर्टी को सपोर्ट नहीं करते। उदाहरण के लिए:

\n
    \n
  • flexbox और grid — हर जगह काम नहीं करते
  • \n
  • border-radius — आंशिक रूप से समर्थित है
  • \n
  • @media print — अनदेखा किया जा सकता है
  • \n
  • फ़ॉन्ट (विशेषकर सिरिलिक) — जोड़ने की आवश्यकता होती है
  • \n
\n\n

अच्छी खबर: आधुनिक PHP लाइब्रेरी लगातार सुधार कर रही हैं, और सही दृष्टिकोण के साथ आप एक PDF प्राप्त कर सकते हैं जो लगभग ब्राउज़र जैसा दिखता है।

\n\n

PHP पर HTML+CSS को PDF में बदलने के लिए लाइब्रेरी का अवलोकन

\n\n

तीन सबसे लोकप्रिय टूल पर विचार करें। प्रत्येक की अपनी ताकत है।

\n\n

1. Dompdf

\n

लाभ: हल्का, Composer के माध्यम से स्थापित करना आसान, CSS 2.1 और आंशिक रूप से CSS3 का अच्छा समर्थन। सरल दस्तावेज़ों — चालान, रसीदों के लिए उपयुक्त।

\n

नुकसान: जटिल लेआउट (flexbox, grid) का कमजोर समर्थन, बड़े HTML वॉल्यूम के साथ समस्याएँ।

\n\n

2. TCPDF

\n

लाभ: स्थिर, शक्तिशाली, Unicode (सिरिलिक) का समर्थन करता है, बाहरी लाइब्रेरी के बिना काम करता है। ग्राफ़, QR कोड, बहु-पृष्ठ तालिकाओं वाले जटिल PDF फ़ाइलों के लिए आदर्श।

\n

नुकसान: जटिल सिंटैक्स, CSS स्टाइल को मैन्युअल रूप से जोड़ना पड़ता है, कोड भारी हो जाता है।

\n\n

3. mPDF

\n

लाभ: CSS का सबसे अच्छा समर्थन (जिसमें @media, float, position शामिल हैं), सिरिलिक के साथ उत्कृष्ट कार्य, बाहरी फ़ाइलों से स्टाइल का समर्थन। इसे "सुनहरा मध्य" माना जाता है।

\n

नुकसान: Dompdf से भारी, बड़े दस्तावेज़ों पर धीमा हो सकता है।

\n\n

सुझाव: त्वरित शुरुआत के लिए Dompdf लें। गंभीर प्रोजेक्ट के लिए — mPDF। TCPDF — यदि आपको अधिकतम लचीलापन चाहिए और आप अधिक कोड लिखने को तैयार हैं।

\n\n

व्यावहारिक उदाहरण: Dompdf के साथ HTML से PDF जनरेशन

\n\n

चलिए वास्तविक कोड लिखते हैं। Composer के माध्यम से Dompdf स्थापित करें:

\n\n
composer require dompdf/dompdf
\n\n

अब एक PHP स्क्रिप्ट बनाएं जो HTML टेम्पलेट को PDF में बदलती है:

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Dompdf\\Dompdf;\nuse Dompdf\\Options;\n\n// सेटिंग्स\n$options = new Options();\n$options->set('defaultFont', 'DejaVu Sans'); // सिरिलिक समर्थन\n$options->set('isRemoteEnabled', true); // बाहरी इमेज की अनुमति\n\n$dompdf = new Dompdf($options);\n\n// HTML टेम्पलेट\n$html = '\n<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        body { font-family: DejaVu Sans, sans-serif; }\n        .invoice {\n            width: 100%;\n            max-width: 80                

ब्लॉग

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