सीधे कंटेंट पर जाएं

PDF रिपेयर करें

न खुलने वाली PDF को बचाएं। फ़ाइल का इंडेक्स दोबारा बनाया जाता है, और अगर डॉक्यूमेंट बिल्कुल पार्स न हो सके, तो बाइट्स में जो कुछ अब भी पढ़ने लायक है वह सब वापस निकाला जाता है — और कुछ भी स्टोर नहीं होता।

  • कभी स्टोर नहीं होती
  • न कतार, न इंतज़ार
  • साइनअप नहीं, वॉटरमार्क नहीं

यह कैसे काम करता है

1

ख़राब PDF जोड़ें

वह फ़ाइल यहां छोड़ें जो नहीं खुलती। इससे फ़र्क़ नहीं पड़ता कि दूसरे ऐप उसे नकार देते हैं।

2

रिपेयर करें

फ़ाइल का इंडेक्स दोबारा बनाया जाता है, या पार्स न हो सके तो उसे एक-एक ऑब्जेक्ट करके फिर से बनाया जाता है।

3

जांचें और डाउनलोड करें

आपको बताया जाता है कि कितने पेज वापस आए और क्या किया गया, फिर आप रिपेयर की हुई फ़ाइल डाउनलोड करते हैं।

आम तौर पर क्या टूटा होता है, और वापसी के दो रास्ते

न खुलने वाली ज़्यादातर PDF किसी असली मायने में ख़राब नहीं होतीं। PDF के आख़िर में एक क्रॉस-रेफ़रेंस टेबल होती है — एक इंडेक्स जो फ़ाइल के हर ऑब्जेक्ट का बाइट ऑफ़सेट दर्ज करता है — और रीडर कुछ भी ढूंढने के लिए इसी का इस्तेमाल करते हैं। यह इंडेक्स बिगड़ जाए तो पूरी तरह सही डॉक्यूमेंट भी खुलना बंद हो जाता है, क्योंकि सब कुछ मौजूद होते हुए भी कुछ ढूंढा नहीं जा सकता। बीच में रुके डाउनलोड, अधूरा रह गया सेव, क्रैश हुआ ऐप्लिकेशन, ऐसे प्रोग्राम से एडिट हुई फ़ाइल जिसने ऑफ़सेट अपडेट नहीं किए, लाइन एंडिंग बिगाड़ देने वाला ट्रांसफ़र: ये सब इंडेक्स तोड़ देते हैं और कंटेंट को छूते तक नहीं।

पहला पास ठीक इसी बात का फ़ायदा उठाता है। फ़ाइल को नरमी से पार्स किया जाता है, बताए गए ऑफ़सेट को वहां अनदेखा किया जाता है जहां वे असल में मौजूद चीज़ से मेल नहीं खाते, और फिर सही इंडेक्स, सही स्ट्रीम लंबाई और साफ़ ट्रेलर के साथ उसे नए सिरे से लिखा जाता है। इसी से ज़्यादातर फ़ाइलें वापस आती हैं, यह तेज़ है, और पेजों में कुछ नहीं बदलता — नतीजा आपका ही डॉक्यूमेंट है, जिसमें काम करने वाली विषय-सूची फिर से जोड़ दी गई है।

जब फ़ाइल बिल्कुल पार्स न हो, तो दूसरा पास वही करता है जो कोई डेस्कटॉप रिकवरी टूल करता है: यह शुरू से आख़िर तक रॉ बाइट्स स्कैन करके ऑब्जेक्ट हेडर ढूंढता है, जो कुछ अब भी PDF ऑब्जेक्ट जैसा दिखता है उसे इकट्ठा करता है, और इंडेक्स को फ़ाइल के दावे से नहीं, बल्कि असल में मौजूद चीज़ों से दोबारा बनाता है। पेज आपको बताता है कि दोनों में से कौन-सा चला, क्योंकि इससे फ़र्क़ पड़ता है — दोबारा बनाने का मतलब है कि मूल संरचना पढ़ी नहीं जा सकी, और नतीजे पर भरोसा करने से पहले उसे एक बार देख लेना चाहिए।

कोई भी पास ऐसा डेटा नहीं गढ़ सकता जो है ही नहीं, और दुनिया का कोई टूल ऐसा नहीं कर सकता। अगर डाउनलोड साठ प्रतिशत पर रुक गया, तो आख़िरी चालीस प्रतिशत पेज फ़ाइल में मौजूद ही नहीं हैं; रिकवरी जो पेज पहुंचे उन्हें ढूंढती है और वहीं रुक जाती है। अगर नुक़सान किसी कंप्रेस्ड स्ट्रीम के अंदर है, तो वह स्ट्रीम डीकंप्रेस नहीं हो सकती और जिस पेज को वह बनाती थी वह ख़ाली आता है, जबकि उसके आस-पास के पेज ठीक रहते हैं। यहां डॉक्यूमेंट का कुछ हिस्सा वापस पाना ही आम तौर पर अच्छा नतीजा है, और मूल फ़ाइल फिर से पा लेना कटी हुई कॉपी रिपेयर करने से हमेशा बेहतर है।

जब आपको कुछ और चाहिए

इस काम के लिए qpdf मानक टूल है और यही पहला पास ज़्यादा अच्छी तरह करता है: qpdf --replace-input damaged.pdf फ़ाइल को सही इंडेक्स के साथ दोबारा लिखता है, और एन्क्रिप्टेड डॉक्यूमेंट, ऑब्जेक्ट स्ट्रीम और लीनियराइज़्ड फ़ाइलें संभाल लेता है, जिन पर नरम पार्सिंग अटक सकती है। mutool clean -ggg in.pdf out.pdf इससे भी आगे जाता है, पेज ट्री दोबारा बनाता है और जो कुछ कहीं से रेफ़र नहीं होता उसे हटा देता है। दोनों मुफ़्त हैं, दोनों ब्राउज़र टैब की क्षमता से कहीं बड़ी फ़ाइलों पर चलते हैं, और दोनों बताते हैं कि उन्हें क्या ठीक करना पड़ा।

जो फ़ाइल इतनी ख़राब हो कि ऑब्जेक्ट स्कैन करना ही एकमात्र रास्ता बचे, उसके लिए Ghostscript अक्सर सबसे ज़िद्दी साबित होता है: gs -o repaired.pdf -sDEVICE=pdfwrite broken.pdf सिर्फ़ इंडेक्स दोबारा नहीं बनाता, पेज के कंटेंट को समझकर चलाता है, जिससे कभी-कभी वे पेज भी दोबारा बन जाते हैं जिन पर दूसरे टूल हार मान लेते हैं — पर इसकी क़ीमत यह है कि सब कुछ दोबारा लिखा जाता है, इसलिए आउटपुट बाइट-दर-बाइट वैसा नहीं रहता जैसा बचा था।

अक्सर पूछे जाने वाले सवाल

असल में क्या रिपेयर होता है?

ज़्यादातर “करप्ट” PDF की संरचना ठीक होती है, पर उनकी क्रॉस-रेफ़रेंस टेबल टूटी होती है — वह इंडेक्स जो बताता है कि हर ऑब्जेक्ट कहां है। अधूरे डाउनलोड, बीच में रुका सेव और गड़बड़ी वाले जनरेटर, सभी से ऐसा होता है, और कंटेंट मौजूद होने के बावजूद रीडर फ़ाइल खोलने से मना कर देते हैं। वह इंडेक्स दोबारा बनाते ही डॉक्यूमेंट सीधे वापस आ जाता है।

अगर फ़ाइल बिल्कुल पार्स न हो सके तो?

तब रॉ बाइट्स में ऑब्जेक्ट हेडर खोजे जाते हैं, जो कुछ अब भी मौजूद है वह इकट्ठा किया जाता है, और उसके चारों ओर नया इंडेक्स और ट्रेलर लिखा जाता है — ठीक वैसी ही रिकवरी जो कोई डेस्कटॉप टूल करता है। नतीजा आपको मिलने से पहले उसे दोबारा खोलकर देखा जाता है, इसलिए जो फ़ाइल फिर भी लोड न हो, उसकी सूचना दी जाती है, उसे डाउनलोड नहीं कराया जाता।

क्या मेरी ख़राब फ़ाइल कहीं स्टोर होती है?

नहीं। रिकवरी स्कैन भी कुछ स्टोर नहीं करता। कुछ भी कहीं भेजा नहीं जाता।

क्या यह डाउनलोड के बीच में कटी फ़ाइल वापस ला सकता है?

अक्सर, हां — वहां तक जहां डेटा ख़त्म होता है। जो पेज कभी डाउनलोड ही नहीं हुए, उन्हें गढ़ा नहीं जा सकता, इसलिए हो सकता है आपको पूरा डॉक्यूमेंट नहीं, उसका शुरुआती हिस्सा वापस मिले।

क्या यह पासवर्ड वाली PDF रिपेयर करेगा?

रिपेयर के दौरान एन्क्रिप्शन को अनदेखा किया जाता है, इसलिए सुरक्षित फ़ाइल तभी पढ़ने लायक वापस आ सकती है जब आपके पास पासवर्ड भी हो। उसके लिए अलग से PDF अनलॉक करें इस्तेमाल करें।

ध्यान दें: रिपेयर वही वापस लाता है जो अब भी फ़ाइल में है — जो डेटा सच में ग़ायब है, उसे यह दोबारा नहीं बना सकता। अगर डॉक्यूमेंट बीच में कट गया था, तो कटने के बाद के पेज हमेशा के लिए चले गए। जिन फ़ाइलों के कंप्रेस्ड स्ट्रीम के अंदर नुक़सान हुआ है, वे कुछ ख़ाली पेजों के साथ वापस आ सकती हैं।

यह टूल अपनी वेबसाइट पर लगाएं

किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।