डॉक्यूमेंट में क्या होता है, और हर कन्वर्ज़न उसके साथ क्या करता है
.docx असल में XML फ़ाइलों का एक ZIP है, और जो चीज़ें इसे डॉक्यूमेंट बनाती हैं उनमें से ज़्यादातर टेक्स्ट नहीं हैं। इसमें स्टाइल होती हैं — Heading 1 जैसी नाम वाली परिभाषाएं जो कई पैराग्राफ़ साझा करते हैं — और डायरेक्ट फ़ॉर्मैटिंग होती है, जहां किसी ने एक लाइन चुनकर बोल्ड दबा दिया। दोनों एक जैसी दिखती हैं और कन्वर्ज़न में बिल्कुल अलग बर्ताव करती हैं: स्टाइल, स्टाइल के रूप में बचती है; डायरेक्ट फ़ॉर्मैटिंग वाला हिस्सा सिर्फ़ उस फ़ॉर्मैटिंग के रूप में बचता है जो उससे बनी। इनके साथ नंबरिंग की परिभाषाएं, ट्रैक किए गए बदलाव, कमेंट, फ़ुटनोट, हेडर और फ़ुटर, टेक्स्ट बॉक्स, एम्बेड किए फ़ॉन्ट और डॉक्यूमेंट की प्रॉपर्टी होती हैं, हर एक पैराग्राफ़ के टेक्स्ट से अलग स्टोर की हुई।
लिस्ट के नंबर सबसे साफ़ उदाहरण हैं। Word “1.” को टेक्स्ट के रूप में स्टोर नहीं करता; वह एक नंबरिंग परिभाषा का रेफ़रेंस स्टोर करता है और पेज बनाते समय नंबर हिसाब लगाकर निकालता है। इसलिए जो टेक्स्ट एक्सट्रैक्टर पैराग्राफ़ का XML पढ़ते हैं, वे हर नंबर छोड़ देते हैं और आपको बिना नंबर की लिस्ट थमा देते हैं। DOCX को TXT में बदलें इसकी जगह उन्हें दोबारा बनाता है — “1.”, “1.1”, “a)”, “iii.” — उन लिस्ट समेत जो डॉक्यूमेंट में दोबारा शुरू होती हैं या आगे जारी रहती हैं।
ट्रैक किए गए बदलाव और कमेंट एक फ़ैसला हैं, इत्तेफ़ाक़ नहीं। रिव्यू में चल रहे डॉक्यूमेंट में हटाया गया टेक्स्ट और जोड़ा गया टेक्स्ट दोनों एक ही फ़ाइल में, निशान लगाकर रखे होते हैं। DOCX को TXT में बदलें उसे ऐसे पढ़ता है जैसे हर बदलाव स्वीकार कर लिया गया हो: जोड़ा गया टेक्स्ट रखा जाता है, हटाया गया छोड़ दिया जाता है। कमेंट बिल्कुल शामिल नहीं होते, और जब प्लेन टेक्स्ट किसी सार्वजनिक जगह जा रहा हो तो आम तौर पर आप यही चाहते हैं। फ़ुटनोट और एंडनोट [1] जैसे निशानों के रूप में आते हैं और नोट आख़िर में इकट्ठे होते हैं, हेडर और फ़ुटर चालू किए जा सकते हैं, और टेक्स्ट बॉक्स पढ़ने के क्रम में एक-एक बार आते हैं, न दोहराए जाते हैं, न खोते हैं।
PDF में बदलने से जो पक्का होता है, वह है पेजों का बंटवारा। वर्ड प्रोसेसर में पेज चार कहां ख़त्म होगा, यह हर बार फ़ाइल खुलने पर दोबारा तय होता है, उसे खोलने वाले के फ़ॉन्ट और प्रिंटर ड्राइवर से — इसीलिए डॉक्यूमेंट पाने वाले के यहां टेबल दो पेजों में बंटी पहुंचती है और आपके यहां नहीं। PDF में ऐसा कोई दोबारा हिसाब नहीं होता: पेज ब्रेक एक बार, कन्वर्ज़न के समय तय हुए और अब फ़ाइल की पक्की बात हैं। Word को PDF में बदलें, ODT को PDF में बदलें और RTF को PDF में बदलें ये ब्रेक किसी ब्राउज़र के अंदाज़े से नहीं, पूरे वर्ड-प्रोसेसर लेआउट से लेते हैं, इसीलिए टेक्स्ट बॉक्स, शेप, हेडर और फ़ुटर वहीं आते हैं जहां लेखक ने उन्हें रखा था।
जो खोता है, वह है एडिट करने और टेक्स्ट के दोबारा फैलने (रीफ़्लो) की सुविधा। स्टाइल दिखने वाली फ़ॉर्मैटिंग बन जाती हैं, आउटलाइन बुकमार्क बन जाती है, और टेक्स्ट अब फ़ोन स्क्रीन के हिसाब से दोबारा नहीं फैलता। डॉक्यूमेंट में एम्बेड किए फ़ॉन्ट जैसे हैं वैसे इस्तेमाल होते हैं; जो फ़ॉन्ट न एम्बेड है और न कन्वर्टर के पास उपलब्ध है, उसकी जगह नाप में सबसे मिलता-जुलता (मेट्रिक-कम्पैटिबल) फ़ॉन्ट लगता है, इसलिए अक्षरों की बनावट अलग होने पर भी लाइनें उन्हीं जगहों पर टूटती हैं।
ई-बुक में बचाने के लिए पेज होते ही नहीं। EPUB, MOBI और AZW3 रीफ़्लो होने वाले फ़ॉर्मैट हैं — रीडर ऐप तय करता है कि हर पेज कहां ख़त्म हो, आपके चुने फ़ॉन्ट साइज़ पर — इसलिए “पेज 40” किताब की कोई ख़ूबी नहीं है, और आपकी PDF में पेजों का बंटवारा कन्वर्ज़न के समय आपके चुने पेज साइज़ और मार्जिन से बनता है। फ़ाइल में जो होता है वह है चैप्टर की बनावट और विषय-सूची, और वे असली PDF लिंक और बुकमार्क बन जाते हैं। AZW3 में स्टाइलशीट और अक्सर एम्बेड किए फ़ॉन्ट होते हैं, इसलिए वह वैसी ही दिखती है जैसी प्रकाशक ने डिज़ाइन की; पुरानी MOBI फ़ाइलों में स्टाइलशीट होती ही नहीं, इसीलिए कन्वर्ट की गई MOBI उसी किताब के Kindle ऐप वाले रूप से सादी दिखती है — ऐप वह टाइपोग्राफ़ी जोड़ रहा था जो फ़ाइल में कभी थी ही नहीं।
RTF शुरू से आख़िर तक टेक्स्ट ही है, इसीलिए यह दशकों के सॉफ़्टवेयर बदलावों के बाद भी चलता है। इसकी दिक़्क़त कैरेक्टर एन्कोडिंग है: RTF, Unicode से पुराना है और टेक्स्ट को पुराने कोड पेज में रखता है — मध्य यूरोपीय, सिरिलिक, ग्रीक, जापानी — और ख़राब तरीक़े से कन्वर्ट हुई RTF में अजीब चिह्न (mojibake) यहीं से आते हैं। यहां इनमें से हर एक को ठीक से डीकोड किया जाता है, आधुनिक Unicode टेक्स्ट के साथ।
जहां ब्राउज़र सच में सही टूल नहीं है
इनमें से कुछ टूल आपकी फ़ाइल पूरी तरह निजी रखते हैं और कुछ उसे सर्वर को सौंपते हैं, और किसके साथ क्या होता है, यह सटीक बताना ज़रूरी है। PDF को टेक्स्ट में बदलें, TXT को PDF में बदलें, DOCX को TXT में बदलें, HTML को DOCX में बदलें और Markdown को HTML में बदलें कभी कुछ नहीं भेजते — फ़ाइल यहीं पढ़ी, कन्वर्ट और लिखी जाती है, और कुछ भी बाहर नहीं जाता। Word को PDF में बदलें, ODT को PDF में बदलें, RTF को PDF में बदलें, HTML को PDF में बदलें, Markdown को PDF में बदलें और तीनों ई-बुक कन्वर्टर कन्वर्ज़न हमारे सर्वर पर करते हैं, क्योंकि वर्ड प्रोसेसर जैसा पेज लेआउट बनाना, या किताब के पेज ठीक से बांटना, ऐसा काम नहीं जिसका नाटक कोई वेब पेज कर सके। क्या भेजा जाता है, इसमें फ़र्क़ है: Word, ODT और RTF डॉक्यूमेंट जैसे हैं वैसे जाते हैं, जबकि Markdown फ़ाइलें और ई-बुक पहले खोलकर एक वेब पेज में जोड़ी जाती हैं, और वही जोड़ा हुआ पेज भेजा जाता है। दोनों ही स्थितियों में यह एन्क्रिप्टेड कनेक्शन से जाता है, कन्वर्ट होता है, और आपका डाउनलोड तैयार होते ही डिलीट हो जाता है — कुछ भी स्टोर, लॉग या शेयर नहीं होता। सर्वर तक न पहुंच पाने पर इनमें से हर टूल अपने ख़ुद के कन्वर्टर पर लौट आता है, और आपको बताता है कि ऐसा हुआ है, और वह विकल्प क्या नहीं बचा पाया।
वे फ़ॉर्मैट जिन्हें हम नहीं खोलते। Word 97–2003 की पुरानी बाइनरी .doc फ़ाइलें Word को PDF में बदलें पर ठीक से कन्वर्ट होती हैं, क्योंकि सर्वर उन्हें सीधे पढ़ता है — पर ब्राउज़र में चलने वाला DOCX को TXT में बदलें उन्हें नहीं पढ़ सकता, और उसे .docx चाहिए। पासवर्ड वाले डॉक्यूमेंट का पासवर्ड उसी प्रोग्राम में हटाना होगा जिसमें वह लगाया गया था। DRM से सुरक्षित Kindle किताबें दुनिया का कोई भी कन्वर्टर नहीं खोल सकता — सुरक्षा इसी के लिए है — और न ही Amazon का नया KFX फ़ॉर्मैट, जिसे सिर्फ़ Kindle ऐप पढ़ता है।
लंबे डॉक्यूमेंट का काम। मास्टर डॉक्यूमेंट, क्रॉस-रेफ़रेंस फ़ील्ड, इंडेक्स, अपने-आप बनने वाली टेबल ऑफ़ ऑथॉरिटीज़, मेल मर्ज और साइटेशन मैनेजर वर्ड प्रोसेसर के फ़ीचर हैं, और कन्वर्टर वर्ड प्रोसेसर नहीं होता। LibreOffice इंस्टॉल करें — यह मुफ़्त है, इस पेज का हर फ़ॉर्मैट पढ़ता है, और इन कामों के लिए सीधे-सीधे सही प्रोग्राम है।
बैच और ऑटोमेशन। ये टूल तब चलते हैं जब कोई व्यक्ति क्लिक करता है। तय समय पर हज़ार फ़ाइलें कन्वर्ट करना कमांड-लाइन का काम है, और मुफ़्त टूल बेहतरीन हैं: हेडलेस मोड में LibreOffice वह सब कुछ कन्वर्ट करता है जो Writer खोल सकता है, Pandoc Markdown, HTML, DOCX, LaTeX और दर्जन भर दूसरे फ़ॉर्मैट के बीच किसी भी वेब फ़ॉर्म से ज़्यादा नियंत्रण के साथ बदलता है, और Calibre बड़ी संख्या में ई-बुक संभालता है और बिना सुरक्षा वाले हर ई-बुक फ़ॉर्मैट के बीच कन्वर्ट करता है।
उल्टी दिशा में हूबहू लेआउट। भारी डिज़ाइन वाली PDF को वापस एडिट होने लायक डॉक्यूमेंट बनाना कन्वर्ज़न नहीं, अनुमान लगाने की समस्या है, और कोई भी इसे पूरी तरह सही नहीं करता — न हम, न महंगे डेस्कटॉप प्रोडक्ट। अगर ओरिजिनल डॉक्यूमेंट अब भी मौजूद है, तो उसी को एडिट करें।
मिलते-जुलते नाम वाले टूल्स में से कैसे चुनें
Markdown को PDF में बदलें बनाम Markdown को HTML में बदलें। पार्सर वही, मंज़िल अलग। Markdown को PDF में बदलें आपको पेजों में बंटा डॉक्यूमेंट देता है, आपके चुने टाइपफ़ेस, पेज साइज़ और मार्जिन के साथ, हेडिंग PDF बुकमार्क के रूप में और ऐसी विषय-सूची के साथ जो सही पेज पर ले जाती है — प्रिंट करने, अटैच करने या आर्काइव करने के लिए। Markdown को HTML में बदलें आपको या तो अलग से स्टाइल किया हुआ पूरा पेज देता है या CMS में पेस्ट करने के लिए सादा स्निपेट — पब्लिश करने के लिए। अगर आपको Markdown, Word में चाहिए, तो पहले Markdown को HTML में बदलें और फिर HTML को DOCX में बदलें।
Word को PDF में बदलें बनाम ODT को PDF में बदलें बनाम RTF को PDF में बदलें। अंदर वही कन्वर्ज़न है; फ़र्क़ सिर्फ़ इसमें है कि आप उन्हें क्या देते हैं। .docx के लिए Word को PDF में बदलें। LibreOffice, OpenOffice या Google Docs के “Download as OpenDocument” से आई किसी भी फ़ाइल के लिए ODT को PDF में बदलें। WordPad, TextEdit और उन चिट्ठियों व रिपोर्ट के लिए जो बिज़नेस सिस्टम आज भी बनाते हैं, RTF को PDF में बदलें। अपने एक्सटेंशन से मेल खाता पेज चुनना उतना मायने नहीं रखता जितना आप सोचेंगे — मायने यह रखता है कि इनमें से कोई भी TXT को PDF में बदलें नहीं है, जिसके पास बचाने के लिए कोई फ़ॉर्मैटिंग होती ही नहीं।
TXT को PDF में बदलें बनाम Markdown को PDF में बदलें। TXT को PDF में बदलें आपके टेक्स्ट को टेक्स्ट की तरह ही सजाता है: एक टाइपफ़ेस, आपके मार्जिन, कोई व्याख्या नहीं। Markdown को PDF में बदलें # और * को निर्देश की तरह पढ़ता है और हेडिंग, लिस्ट, टेबल, हाइलाइट किया कोड और बुकमार्क आउटलाइन बनाता है। Markdown फ़ाइल TXT को PDF में बदलें को दें, तो आपको तारांकन चिह्नों (*) वाली PDF मिलेगी।
EPUB, MOBI और AZW3 से PDF। तीनों अपने नाम से ज़्यादा फ़ॉर्मैट स्वीकार करते हैं, इसलिए इनमें से कोई भी आपकी फ़ाइल खोल लेगा; पेज इसलिए अलग दिखते हैं क्योंकि किताबें अलग हैं। EPUB और AZW3 (KF8) में स्टाइलशीट और अक्सर एम्बेड किए फ़ॉन्ट होते हैं, और वे डिज़ाइन की हुई दिखती हैं। MOBI पुराना कंटेनर है जिसमें बहुत कम फ़ॉर्मैटिंग होती है, और उसकी कन्वर्ट की गई PDF जान-बूझकर सादी रखी जाती है। अगर किसी Kindle फ़ाइल में दोनों लेआउट हैं, तो नया वाला इस्तेमाल होता है।
HTML को DOCX में बदलें बनाम Markdown को HTML में बदलें। HTML को DOCX में बदलें पहले मार्कअप का लेआउट बनाता है, इसलिए लागू हुई CSS — फ़ॉन्ट, साइज़, रंग, स्पेसिंग, बॉर्डर — डॉक्यूमेंट में असली Word फ़ॉर्मैटिंग के रूप में लिखी जाती है, Word की हेडिंग स्टाइल, असली लिस्ट और असली टेबल के साथ, न कि जगह पर टांके हुए बॉक्स के रूप में। Markdown को HTML में बदलें शुरुआत में मार्कअप बनाता है। दोनों में से कोई भी कभी JavaScript नहीं चलाता।
DOCX को TXT में बदलें बनाम PDF को टेक्स्ट में बदलें। दोनों आपको प्लेन टेक्स्ट देते हैं, पर बहुत अलग चीज़ें पढ़ रहे होते हैं। .docx अब भी जानती है कि पैराग्राफ़, लिस्ट और टेबल क्या हैं, इसलिए DOCX को TXT में बदलें लिस्ट के नंबर दोबारा बना सकता है और टेबल की पंक्तियां साथ रख सकता है। PDF सिर्फ़ यह जानती है कि हर कैरेक्टर कहां बनाया गया था, इसलिए PDF को टेक्स्ट में बदलें जगह के आधार पर लाइनों और पैराग्राफ़ का अंदाज़ा लगाता है — अच्छा, पर बनावट के मामले में कभी उतना वफ़ादार नहीं। अगर आपके पास ओरिजिनल डॉक्यूमेंट और उसकी PDF दोनों हैं, तो डॉक्यूमेंट से निकालें।
DOCX को TXT में बदलें बनाम Word से .txt के रूप में सेव करना। Word का अपना प्लेन-टेक्स्ट एक्सपोर्ट लिस्ट की नंबरिंग छोड़ देता है, टेबल बिगाड़ देता है और एन्कोडिंग के बारे में अपनी ही राय रखता है। DOCX को TXT में बदलें नंबरिंग दोबारा बनाता है, टेबल को या तो टैब से अलग पंक्तियों के रूप में लिखता है जो स्प्रेडशीट में पेस्ट हो जाएं, या ऐसे अलाइन कॉलम के रूप में जो चीनी और जापानी में भी सीध में रहें, और आपकी चुनी लाइन एंडिंग के साथ UTF-8 में सेव करता है।