PDFKit for Python क्या है?
PDFKit एक शक्तिशाली Python लाइब्रेरी है जो wkhtmltopdf टूल का रैपर (wrapper) है। यह WebKit इंजन का उपयोग करके HTML दस्तावेज़ों को PDF फ़ाइलों में बदलता है। इस लाइब्रेरी की मदद से डेवलपर्स जटिल लेआउट, आधुनिक CSS स्टाइल, एम्बेडेड फ़ॉन्ट, SVG ग्राफिक्स और यहां तक कि JavaScript को सुरक्षित रखते हुए प्रोफेशनल PDF दस्तावेज़ बना सकते हैं।
PDFKit का सबसे बड़ा फायदा यह है कि यह आपको परिचित वेब तकनीकों (HTML, CSS) का उपयोग करके दस्तावेज़ बनाने की सुविधा देता है, जिन्हें बाद में उच्च गुणवत्ता के साथ PDF में बदला जा सकता है। यह रिपोर्ट, इनवॉइस, टिकट, सर्टिफिकेट और अन्य डायनामिक दस्तावेज़ बनाने के लिए एक आदर्श टूल है।
PDFKit लाइब्रेरी की विशेषताएं
समर्थित तकनीकें
- आधुनिक HTML5 और CSS3
- Bootstrap, Tailwind CSS और अन्य CSS फ्रेमवर्क
- SVG ग्राफिक्स और वेब फ़ॉन्ट
- जटिल फ़ॉर्मेटिंग वाली टेबल
- Flexbox और Grid लेआउट
- CSS मीडिया क्वेरी
- बेसिक JavaScript सपोर्ट
कन्वर्ट करने के स्रोत
PDFKit तीन मुख्य स्रोतों से कन्वर्ज़न को सपोर्ट करता है:
- वेब पेजों के URL पते
- लोकल HTML फ़ाइलें
- एप्लिकेशन मेमोरी में HTML स्ट्रिंग
इंस्टॉलेशन और सेटअप
Python लाइब्रेरी इंस्टॉल करें
pip install pdfkit
wkhtmltopdf इंस्टॉल करें
Ubuntu/Debian:
sudo apt update
sudo apt install wkhtmltopdf
macOS (Homebrew के ज़रिए):
brew install --cask wkhtmltopdf
Windows: आधिकारिक साइट https://wkhtmltopdf.org/downloads.html से इंस्टॉलर डाउनलोड करें। Windows Vista और उससे ऊपर के लिए 32-बिट और 64-बिट दोनों वर्शन उपलब्ध हैं।
CentOS/RHEL/Amazon Linux:
# CentOS 7 के लिए
sudo yum install wkhtmltopdf
# नए वर्शन के लिए
sudo dnf install wkhtmltopdf
इंस्टॉलेशन की जांच करें
इंस्टॉल करने के बाद, जांचें कि wkhtmltopdf सिस्टम में उपलब्ध है या नहीं:
wkhtmltopdf --version
अगर कमांड नहीं मिलती है, तो Python कोड में एग्जीक्यूटेबल फ़ाइल का पथ सेट करना होगा।
मुख्य मेथड और फंक्शन
विभिन्न स्रोतों से PDF बनाएं
import pdfkit
# URL से
pdfkit.from_url("https://example.com", "output.pdf")
# HTML फ़ाइल से
pdfkit.from_file("template.html", "output.pdf")
# HTML स्ट्रिंग से
html_content = "<h1>शीर्षक</h1><p>दस्तावेज़ की सामग्री</p>"
pdfkit.from_string(html_content, "output.pdf")
wkhtmltopdf का पथ कॉन्फ़िगर करें
अगर wkhtmltopdf सिस्टम PATH में नहीं है, तो मैन्युअल रूप से पथ सेट करें:
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_content, "output.pdf", configuration=config)
मेमोरी में PDF जनरेट करें
वेब एप्लिकेशन और API में PDF को बाइट्स के रूप में प्राप्त करना अक्सर ज़रूरी होता है:
# PDF को bytes के रूप में लौटाता है
pdf_bytes = pdfkit.from_string(html_content, False)
# HTTP रिस्पॉन्स के ज़रिए भेजें
from flask import Response
return Response(pdf_bytes, mimetype='application/pdf')
जनरेशन पैरामीटर कॉन्फ़िगर करें
मुख्य फ़ॉर्मेटिंग विकल्प
options = {
'page-size': 'A4',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'no-outline':