Skip to content
Back to Blog
how-to-convert

HTML को PDF में कैसे बदलें (CSS स्टाइलिंग बनाए रखते हुए)

2026-05-17 9 min read

HTML-से-PDF कन्वर्ज़न क्यों गलत हो जाते हैं

जिस किसी ने भी गलत तरीके से हो रहे PDF एक्सपोर्ट से संघर्ष किया है, वह इस दर्द को जानता है। आप एक HTML फ़ाइल को कन्वर्ट करते हैं, और नतीजा टूटे हुए लेआउट, गायब फ़ॉन्ट्स, या एक ऐसा पेज होता है जो आपके ब्राउज़र प्रीव्यू जैसा बिल्कुल नहीं दिखता। समस्या कॉन्सेप्ट में नहीं है; यह इसके निष्पादन में है। PDF रेंडरर्स CSS की व्याख्या करने में बहुत भिन्न होते हैं, और अधिकांश सामान्य कन्वर्टर्स स्टाइलशीट को बस हटा देते हैं या अनदेखा कर देते हैं जब तक कि आप उन्हें मजबूर न करें। मूलभूत टकराव HTML के फ्लो-आधारित मॉडल और PDF के पेज-आधारित मॉडल के बीच है। वेब सामग्री एक व्यूपोर्ट में फिट होने के लिए फैलती और सिकुड़ती है। एक PDF पेज के आयाम निश्चित होते हैं। कोई स्क्रॉलिंग नहीं, कोई डायनामिक रिफ्लो नहीं। इन दो दुनियाओं को जोड़ने के लिए एक ऐसे रेंडरर की आवश्यकता होती है जो CSS पेज नियमों को समझता हो, एम्बेडेड फ़ॉन्ट्स को ठीक से संभालता हो, और फ्लेक्सबॉक्स और ग्रिड जैसे आधुनिक लेआउट का सम्मान करता हो। कई उपकरण ऐसा नहीं करते हैं। आम विफलताएं निराशाजनक रूप से अनुमानित हैं: Google Fonts लोड नहीं होते क्योंकि कनवर्टर ऑफ़लाइन चलता है; बैकग्राउंड रंग गायब हो जाते हैं क्योंकि रेंडरर डिफ़ॉल्ट रूप से 'प्रिंट मोड' पर सेट होता है जो स्याही बचाने के लिए उन्हें हटा देता है; मल्टी-कॉलम लेआउट एक ही, दुखद ढेर में ढह जाते हैं। इन नुकसानों को जानना आधी लड़ाई है। यह गाइड आपको इनसे बचने में मदद करेगा, चाहे आप CocoConvert के [HTML to PDF टूल](/convert/html-to-pdf) का उपयोग कर रहे हों या अपना खुद का वर्कफ़्लो बना रहे हों।

'CSS स्टाइलिंग को संरक्षित करने' का वास्तव में क्या मतलब है

समाधानों में गोता लगाने से पहले, आइए इस बारे में सटीक हों कि 'CSS को संरक्षित करने' का मतलब क्या है। PDF के संदर्भ में स्टाइलिंग कोई एक चीज़ नहीं है; यह चार अलग-अलग श्रेणियां हैं, और ये सभी हर कन्वर्ज़न विधि में जीवित नहीं रहती हैं। **विज़ुअल स्टाइलिंग** सबसे नाजुक है। इसमें रंग, बॉर्डर, बॉक्स शैडो और बैकग्राउंड इमेज शामिल हैं। प्रिंट रेंडरर्स अक्सर स्याही बचाने के लिए डिफ़ॉल्ट रूप से बैकग्राउंड को दबा देते हैं। उदाहरण के लिए, Chrome के अपने प्रिंट डायलॉग में, आपको 'More settings' में जाकर 'Background graphics' को चेक करना होगा वरना आपके बैकग्राउंड बस गायब हो जाएंगे। **टाइपोग्राफी**—फ़ॉन्ट परिवार, वजन, आकार, लाइन-ऊंचाई—फ़ॉन्ट की उपलब्धता पर निर्भर करती है। यदि आपके फ़ॉन्ट्स को एक रिमोट URL द्वारा संदर्भित किया गया है, तो कोई भी कनवर्टर जो बाहरी संसाधनों को नहीं लाता है, वह सिस्टम डिफ़ॉल्ट पर वापस आ जाएगा। आपका सुंदर Inter या Lato टाइपफेस तुरंत एक नीरस Times New Roman बन जाता है। फ़ॉन्ट्स को संरक्षित करने का एकमात्र अचूक तरीका उन्हें एम्बेड करना है। **लेआउट** वह जगह है जहाँ चीजें वास्तव में जटिल हो जाती हैं। आधुनिक CSS सुविधाएँ जैसे flexbox, CSS Grid, और एब्सोल्यूट पोजिशनिंग को Chromium-आधारित रेंडरर्स द्वारा अच्छी तरह से संभाला जाता है। लेकिन wkhtmltopdf जैसे पुराने इंजन (जो लगभग 2013 के WebKit इंजन का उपयोग करता है) आधुनिक लेआउट को अनुमानित, निराशाजनक तरीकों से बिगाड़ देंगे। **पेज-विशिष्ट CSS** जैसे `@page` नियम, `page-break-before`, और `break-inside: avoid` वास्तव में ब्राउज़रों की तुलना में PDF कन्वर्ज़न में बेहतर समर्थित हैं। यह CSS विशेष रूप से पेजेड मीडिया के लिए मौजूद है। `@media print` ब्लॉक का उपयोग करके, आप ऐसी स्टाइल बना सकते हैं जो केवल PDF संस्करण पर लागू होती हैं, जिससे आपको अपनी वेबसाइट की उपस्थिति को खराब किए बिना बारीक नियंत्रण मिलता है। यह जानना कि आपकी स्टाइलिंग समस्या किस श्रेणी में आती है, आपको बताता है कि कौन से उपकरण और तकनीकें इसे ठीक करने की संभावना रखती हैं।

CocoConvert का उपयोग करके HTML को PDF में बदलना

CocoConvert का [HTML to PDF कनवर्टर](/convert/html-to-pdf) एक आधुनिक Chromium-आधारित रेंडरिंग इंजन पर चलता है। इसका मतलब है कि यह समकालीन CSS—जिसमें flexbox, Grid, CSS वेरिएबल्स, और `calc()` मान शामिल हैं—को उच्च निष्ठा के साथ संभालता है। यहाँ सही परिणाम प्राप्त करने का तरीका बताया गया है। **चरण 1: अपनी HTML फ़ाइल तैयार करें।** यदि आपकी स्टाइल एक बाहरी स्टाइलशीट में हैं, तो आपके पास दो विकल्प हैं: या तो उन्हें Juice जैसी लाइब्रेरी के साथ इनलाइन करें, या सुनिश्चित करें कि स्टाइलशीट का पथ सापेक्ष है और आपके अपलोड में शामिल है। CocoConvert एक समय में एक ही HTML फ़ाइल को प्रोसेस करता है और रिमोट URL को फ़ेच नहीं करता है। Google Fonts या CDN-होस्टेड स्टाइलशीट लोड नहीं होंगी। **चरण 2: अपने फ़ॉन्ट्स एम्बेड करें।** कस्टम टाइपोग्राफी के लिए यह गैर-परक्राम्य है। अपनी फ़ॉन्ट फ़ाइलों को base64 में बदलें और उन्हें सीधे `@font-face` का उपयोग करके `<style>` ब्लॉक में एम्बेड करें। हाँ, इससे फ़ाइल का आकार बढ़ता है, लेकिन यह एकमात्र तरीका है जिससे यह गारंटी मिलती है कि आपके फ़ॉन्ट्स सही ढंग से रेंडर होंगे। एक सामान्य बॉडी फ़ॉन्ट के लिए जिसमें रेगुलर और बोल्ड वेट होते हैं, यह आपकी HTML फ़ाइल में 80-150 KB जोड़ सकता है। **चरण 3: अपलोड करें और पेज विकल्प सेट करें।** अपलोड होने के बाद, CocoConvert पेज आकार (A4, Letter, Legal, या कस्टम आयाम), ओरिएंटेशन और मार्जिन के लिए विकल्प प्रस्तुत करता है। सभी तरफ 15mm मार्जिन के साथ A4 एक ठोस डिफ़ॉल्ट है। यदि आप एक विस्तृत डैशबोर्ड या टेबल कन्वर्ट कर रहे हैं, तो लैंडस्केप ओरिएंटेशन पर स्विच करें। **चरण 4: बैकग्राउंड ग्राफिक्स सक्षम करें।** यह सबसे आम गलती है। CocoConvert के विकल्प पैनल में, आपको 'Print backgrounds' को On पर टॉगल करना होगा। यदि आप ऐसा नहीं करते हैं, तो `background-color` या `background-image` वाला कोई भी एलिमेंट सादे सफेद रंग में रेंडर होगा। **चरण 5: डाउनलोड करें और सत्यापित करें।** केवल अपने ब्राउज़र में PDF पर एक नज़र न डालें। इसे Adobe Acrobat Reader जैसे उचित व्यूअर में खोलें और File > Properties > Fonts पर जाकर जांचें कि फ़ॉन्ट्स सही ढंग से एम्बेडेड हैं। सूची में प्रत्येक फ़ॉन्ट के आगे 'Embedded Subset' लिखा होना चाहिए।

सीमाओं को समझना: CocoConvert क्या नहीं कर सकता

आइए इस बारे में ईमानदार रहें कि CocoConvert क्या नहीं है। यह एक शक्तिशाली सामान्य-उद्देश्यीय कनवर्टर है, लेकिन कुछ कार्य इसके दायरे से बाहर हैं। इन सीमाओं को पहले से जानने से आप व्यर्थ की समस्या निवारण से बचेंगे। **जावास्क्रिप्ट-रेंडर की गई सामग्री।** यदि आपका पेज React या Vue जैसे फ्रेमवर्क द्वारा बनाया गया है, तो स्रोत HTML फ़ाइल अपलोड करना काम नहीं करेगा। कनवर्टर स्थिर HTML देखता है, न कि जावास्क्रिप्ट द्वारा बनाया गया अंतिम पेज। JS-भारी पेजों के लिए, आपका सबसे अच्छा दांव यह है कि पहले अपने ब्राउज़र से पूरी तरह से रेंडर किए गए HTML को सहेजें (राइट-क्लिक > Save As > Webpage, Complete) और उस फ़ाइल को अपलोड करें। वैकल्पिक रूप से, आपको Puppeteer जैसे हेडलेस ब्राउज़र टूल की आवश्यकता होगी। **इंटरैक्टिव तत्व।** फॉर्म, ड्रॉपडाउन और होवर स्टेट्स PDF में इंटरैक्टिव नहीं होते हैं। कन्वर्ज़न तत्व की डिफ़ॉल्ट स्थिति का एक स्थिर स्नैपशॉट कैप्चर करता है। यदि पेज रेंडर होने पर एक अकॉर्डियन बंद है, तो वह PDF में बंद रहेगा। इससे बचने का कोई तरीका नहीं है; यह PDF की प्रकृति है। **बहुत बड़ी फाइलें।** CocoConvert की मुफ्त टियर पर 50 MB और पेड प्लान पर 200 MB की फ़ाइल सीमा है। यह उदार लगता है, लेकिन कई base64-एन्कोडेड छवियों वाली एक HTML फ़ाइल आश्चर्यजनक रूप से जल्दी इन सीमाओं तक पहुँच सकती है। एक एकल उच्च-रिज़ॉल्यूशन PNG आसानी से फ़ाइल आकार में 3-5 MB जोड़ सकता है। **जटिल SVG एनिमेशन।** स्थिर SVG खूबसूरती से रेंडर होते हैं। हालाँकि, SVG के अंदर कोई भी CSS या SMIL एनिमेशन उनके शुरुआती फ्रेम पर जम जाएगा। CocoConvert सीधे, फ़ाइल-आधारित कन्वर्ज़न के लिए बनाया गया है। जब आपके पास एक तैयार HTML दस्तावेज़ होता है और आपको एक विश्वसनीय PDF की आवश्यकता होती है, तो यह सही उपकरण है। जटिल, सर्वर-साइड पाइपलाइनों के लिए जिन्हें जावास्क्रिप्ट निष्पादित करने की आवश्यकता होती है, आपको Playwright या Puppeteer जैसे प्रोग्रामेटिक टूल को देखना होगा।

CSS तकनीकें जो PDF आउटपुट को बेहतर बनाती हैं

आप शुरुआत से ही PDF आउटपुट को ध्यान में रखकर CSS लिखकर अपने आप को बहुत दर्द से बचा सकते हैं। बाद में समस्याओं को ठीक करना हमेशा कठिन होता है। **PDF-विशिष्ट ओवरराइड के लिए `@media print` का उपयोग करें।** यह आपका गुप्त हथियार है। किसी भी PDF-केवल नियमों को `@media print` ब्लॉक में लपेटें ताकि नेविगेशन बार जैसे तत्वों को छिपाया जा सके, बॉक्स शैडो को हटाया जा सके जो प्रिंट में गंदे दिखते हैं, या एक पेज पर पठनीयता के लिए फ़ॉन्ट आकार को समायोजित किया जा सके। उदाहरण के लिए: ```css @media print { nav, .sidebar { display: none; } body { font-size: 11pt; } .card { box-shadow: none; border: 1px solid #ddd; } } ``` **पेज ब्रेक को स्पष्ट रूप से नियंत्रित करें।** रेंडरर को यह तय न करने दें कि पेज कहाँ तोड़ना है। एक प्रमुख अनुभाग से पहले एक नया PDF पेज शुरू करने के लिए `break-before: page` का उपयोग करें, और टेबल और आंकड़ों जैसे तत्वों पर `break-inside: avoid` लागू करें ताकि वे दो पेजों में अजीब तरह से विभाजित न हों। पेशेवर दिखने वाली रिपोर्ट के लिए यह बिल्कुल आवश्यक है। **स्पष्ट `@page` आयाम सेट करें।** यदि आप लक्ष्य पेज का आकार जानते हैं, तो इसे अपने CSS में घोषित करें। यह आपकी स्टाइल और कनवर्टर की सेटिंग्स के बीच बेमेल को रोकता है, जिससे अप्रत्याशित टेक्स्ट क्लिपिंग हो सकती है। ```css @page { size: A4 portrait; margin: 15mm 20mm; } ``` **प्रिंट लेआउट में व्यूपोर्ट इकाइयों से बचें।** `vw` और `vh` जैसी इकाइयाँ एक निश्चित PDF पेज के लिए अर्थहीन हैं। उन तत्वों के लिए जिन्हें पेज पर फैलने की आवश्यकता है, इसके बजाय `mm`, `pt`, या प्रतिशत का उपयोग करें। **पहले Chrome के अंतर्निहित प्रिंट प्रीव्यू के साथ परीक्षण करें।** कुछ भी अपलोड करने से पहले, Ctrl+P (या Cmd+P) दबाएं और 'Save as PDF' चुनें। यह आपको उसी Chromium इंजन का उपयोग करके एक त्वरित प्रीव्यू देता है जो CocoConvert को शक्ति प्रदान करता है। बार-बार अपलोड पर समय बर्बाद किए बिना अपने CSS पर पुनरावृति करने का यह सबसे तेज़ तरीका है।

एक पूरी वेबपेज (URL) बनाम एक HTML फ़ाइल को कन्वर्ट करना

एक स्थानीय HTML फ़ाइल को कन्वर्ट करने का दृष्टिकोण एक लाइव वेबपेज URL को कन्वर्ट करने से मौलिक रूप से भिन्न है। आपको सही काम के लिए सही उपकरण चुनना होगा। **एक स्थानीय HTML फ़ाइल को कन्वर्ट करना** वह है जिसमें CocoConvert का [HTML to PDF टूल](/convert/html-to-pdf) उत्कृष्टता प्राप्त करता है। इस विधि के लिए एक आत्मनिर्भर दस्तावेज़ की आवश्यकता होती है। सभी CSS को इनलाइन या `<style>` ब्लॉक में होना चाहिए, सभी छवियों को base64-एन्कोड किया जाना चाहिए या एक ZIP फ़ाइल में सापेक्ष पथों के माध्यम से संदर्भित किया जाना चाहिए, और फ़ॉन्ट्स को एम्बेड किया जाना चाहिए। इसे एक सीलबंद पैकेज भेजने के रूप में सोचें: रेंडरर को जो कुछ भी चाहिए वह शुरुआत से ही अंदर होना चाहिए। यह प्रक्रिया को अविश्वसनीय रूप से विश्वसनीय बनाता है। **URL द्वारा एक लाइव वेबपेज को कन्वर्ट करना** पूरी तरह से एक अलग मामला है। इसके लिए एक ऐसे उपकरण की आवश्यकता होती है जो एक वास्तविक ब्राउज़र सत्र शुरू कर सके, URL पर नेविगेट कर सके, जावास्क्रिप्ट के निष्पादित होने और वेब फ़ॉन्ट्स के डाउनलोड होने की प्रतीक्षा कर सके, और फिर PDF पर प्रिंट कर सके। Puppeteer, Playwright, या Browserless.io जैसी सेवाएं इसके लिए डिज़ाइन की गई हैं। इसका नतीजा जटिलता का एक पहाड़ है। आपको प्रमाणीकरण, कुकी पॉप-अप, लेज़ी-लोडेड सामग्री, और अप्रत्याशित नेटवर्क गति से निपटना होगा। अधिकांश सामान्य कार्यों के लिए—एक टेम्पलेट से PDF चालान बनाना, एक रिपोर्ट निर्यात करना, या एक स्टाइल किए गए दस्तावेज़ को संग्रहीत करना—फ़ाइल-आधारित दृष्टिकोण सरल और कहीं अधिक अनुमानित है। आप इनपुट को पूरी तरह से नियंत्रित करते हैं, इसलिए आउटपुट सुसंगत होता है। यदि आप एक ऐसी प्रणाली का निर्माण कर रहे हैं जो लाइव उपयोगकर्ता डेटा से PDF उत्पन्न करती है, तो सबसे अच्छा अभ्यास एक हाइब्रिड दृष्टिकोण है: अपने सर्वर पर उपयोगकर्ता के डेटा के साथ एक HTML टेम्पलेट को पॉप्युलेट करें, और फिर उस पूरी तरह से रेंडर किए गए HTML स्ट्रिंग को एक कन्वर्ज़न API को पास करें। CocoConvert का API इस वर्कफ़्लो का समर्थन करता है, जो एक POST अनुरोध में सीधे HTML स्वीकार करता है।

आउटपुट की जाँच: एक PDF गुणवत्ता चेकलिस्ट

सिर्फ इसलिए कि एक PDF आपकी स्क्रीन पर सही दिखता है, इसका मतलब यह नहीं है कि यह तैयार है। इससे पहले कि आप उस फ़ाइल को किसी क्लाइंट को भेजें या इसे प्रकाशित करें, इस त्वरित लेकिन महत्वपूर्ण चेकलिस्ट को देखें। **क्या फ़ॉन्ट्स एम्बेडेड हैं?** PDF को Adobe Acrobat Reader में खोलें और File > Properties > Fonts पर नेविगेट करें। आपके द्वारा उपयोग किया गया प्रत्येक फ़ॉन्ट 'Embedded Subset' के साथ सूचीबद्ध होना चाहिए। यदि कोई फ़ॉन्ट एम्बेडेड नहीं है, तो उसे किसी भी मशीन पर सिस्टम डिफ़ॉल्ट द्वारा प्रतिस्थापित कर दिया जाएगा जिसमें वह स्थापित नहीं है, जिससे आपका डिज़ाइन बर्बाद हो जाएगा। **क्या रंग सटीक हैं?** वेब CSS RGB कलर स्पेस का उपयोग करता है। स्क्रीन के लिए नियत अधिकांश PDF RGB में ठीक हैं। हालाँकि, यदि PDF का उद्देश्य व्यावसायिक मुद्रण के लिए है, तो उसे CMYK कलर स्पेस की आवश्यकता हो सकती है, जो प्रारंभिक HTML-से-PDF प्रक्रिया के बाद एक अलग कन्वर्ज़न चरण है। **क्या टेक्स्ट चयन योग्य और खोजने योग्य है?** टेक्स्ट की एक पंक्ति का चयन करने के लिए क्लिक और ड्रैग करने का प्रयास करें। यदि आप कर सकते हैं, तो टेक्स्ट वास्तविक वेक्टर टेक्स्ट है, जो खोज क्षमता और पहुंच के लिए अच्छा है। यदि आप इसे चुन नहीं सकते हैं, तो कनवर्टर ने पेज को एक फ्लैट इमेज में रास्टराइज़ कर दिया हो सकता है—यह कॉपी-पेस्ट, स्क्रीन रीडर और टेक्स्ट खोज के लिए एक आपदा है। **क्या पेज संख्या और ब्रेक सही हैं?** प्रत्येक पेज पर जल्दी से स्क्रॉल करें। क्या कोई शीर्षक एक पेज के नीचे अनाथ हो गया है? क्या टेबल या चार्ट अजीब जगहों पर विभाजित हैं? क्या चित्र उनके कैप्शन से अलग हो गए हैं? **क्या फ़ाइल का आकार उचित है?** दस-पृष्ठ, टेक्स्ट-भारी PDF 1 MB से कम होना चाहिए। यदि यह 15 MB है, तो कुछ गलत है। अपराधी आमतौर पर असम्पीडित छवियां या पूरे पेज का आकस्मिक रास्टराइज़ेशन होता है। **क्या हाइपरलिंक कार्यात्मक हैं?** दस्तावेज़ में किसी भी लिंक पर क्लिक करें। एक अच्छा कनवर्टर `<a href>` टैग को अंतिम PDF में क्लिक करने योग्य लिंक के रूप में संरक्षित करता है। CocoConvert यह डिफ़ॉल्ट रूप से करता है, लेकिन इसे जांचना हमेशा उचित होता है। इन छह जांचों पर तीन मिनट खर्च करने से 95% कन्वर्ज़न समस्याएं किसी और के लिए परेशानी का कारण बनने से पहले ही पकड़ में आ जाएंगी। यह एक अंतिम पॉलिश है जो पेशेवर आउटपुट को शौकिया परिणामों से अलग करती है।

Ready to convert?

Try it now — fast, secure, and private.

Convert Now →