वेब के लिए PDF ऑप्टिमाइज़ करें

ब्राउज़र में चलता है PDF ऑप्टिमाइज़ेशन

फ़ाइल को ऑब्जेक्ट स्ट्रीम और दोबारा कंप्रेस स्ट्रीम के साथ फिर लिखता है, फिर WebAssembly में कंपाइल किए qpdf से लीनियराइज़ करता है, ताकि ब्राउज़र और व्यूअर पूरी फ़ाइल आने से पहले पेज 1 दिखा सकें। नतीजा बताता है Fast Web View लागू हुआ या नहीं।

गोपनीयता: आपके ब्राउज़र में लोकली प्रोसेस होता है। आपकी फ़ाइल अपलोड नहीं होती।
टूल लोड हो रहा है…

PDF कम्प्रेशन कैसे काम करता है?

PDF के आकार का ज़्यादातर हिस्सा इमेज और एम्बेडेड फ़ॉन्ट हैं, टेक्स्ट नहीं। ऑप्टिमाइज़र कई तकनीकें मिलाकर इस्तेमाल करते हैं: इमेज को कम रिज़ॉल्यूशन या क्वालिटी पर दोबारा एन्कोड करना (फ़ोटो के लिए JPEG, लाइन आर्ट के लिए लॉसलेस Flate), फ़ॉन्ट को वास्तव में इस्तेमाल हुए ग्लिफ़ तक सीमित करना, अप्रयुक्त ऑब्जेक्ट, डुप्लिकेट रिसोर्स और मेटाडेटा हटाना, और फ़ाइल को लीनियराइज़ करना ताकि डाउनलोड पूरा होने से पहले ब्राउज़र पहला पेज दिखा दे। हर टूल ये सब नहीं करता। ये तकनीकें टेक्स्ट लेयर, लिंक और संरचना बनाए रखती हैं; पूरे पेजों को इमेज में बदलना, जो सबसे आक्रामक विकल्प है, टेक्स्ट को पिक्सेल बना देता है और इन्हें खो देता है।

गाइड पढ़ें: PDF कम्प्रेशन समझाया गया

वेब के लिए PDF ऑप्टिमाइज़ करें कैसे इस्तेमाल करें

  1. एक PDF छोड़ें।
  2. सबसे छोटे आउटपुट के लिए "स्ट्रीम दोबारा कंप्रेस करें" चालू रखें।
  3. "वेब के लिए ऑप्टिमाइज़ करें" पर क्लिक करें।
  4. लीनियराइज़्ड फ़ाइल डाउनलोड करें।

वेब के लिए PDF ऑप्टिमाइज़ करें की खूबियाँ

  • WebAssembly में qpdf 12 से असली लीनियराइज़ेशन (Fast Web View)
  • ऑब्जेक्ट स्ट्रीम और डिफ़्लेट री-कंप्रेशन
  • बेकार ऑब्जेक्ट और इंक्रीमेंटल इतिहास हटाए
  • नतीजा बताता है फ़ाइल लीनियराइज़्ड है या नहीं
  • WebAssembly न होने पर ईमानदार फ़ॉलबैक

वेब के लिए PDF ऑप्टिमाइज़ करें का उदाहरण

वेबसाइट के लिए 40 MB का मैनुअल

इनपुट:

manual.pdf

आउटपुट:

manual-web.pdf — Fast Web View: हाँ; साइज़ 31 MB; डाउनलोड पूरा होने से पहले पहला पेज दिखता है
लीनियराइज़ेशन पहले पेज की ज़रूरत की चीज़ें फ़ाइल की शुरुआत में ले आता है, ताकि बाकी डाउनलोड होते हुए भी व्यूअर उसे दिखा सके। वैचारिक मॉडल

सामान्य PDF

फ़ाइल की शुरुआत → अंत

  1. 1हेडर
  2. 2किसी भी क्रम में ऑब्जेक्टपहले पेज के ऑब्जेक्ट कहीं भी हो सकते हैं
  3. 3क्रॉस-रेफ़रेंस टेबल और ट्रेलरहर ऑब्जेक्ट कहाँ शुरू होता है
Fast Web View:
नहीं

लीनियराइज़्ड (यह टूल)

फ़ाइल की शुरुआत → अंत

  1. 1हेडर और /Linearized डिक्शनरीहिंट स्ट्रीम और पहले पेज के क्रॉस-रेफ़रेंस के साथ
  2. 2पहले पेज के ऑब्जेक्टपहला पेज दिख सकता है
  3. 3बाकी पेजबाद में HTTP रेंज रिक्वेस्ट से लाए जाते हैं
Fast Web View:
हाँ

सरल रूप: हर सूची फ़ाइल के मुख्य हिस्से उसी क्रम में दिखाती है जिसमें वे रखे हैं, पैमाने पर नहीं।

वेब के लिए PDF ऑप्टिमाइज़ करें के बारे में अक्सर पूछे जाने वाले सवाल

लीनियराइज़्ड PDF क्या है?

ऐसी फ़ाइल जिसके ऑब्जेक्ट इस क्रम में हैं कि व्यूअर डाउनलोड की शुरुआत से पहला पेज रेंडर कर सके और बाद के पेज HTTP रेंज रिक्वेस्ट से लाए — Acrobat में "Fast Web View"। वेब पर दिए बड़े दस्तावेज़ों के लिए मायने रखता है।

क्या यह सचमुच लीनियराइज़्ड है या बस दोबारा सेव?

सचमुच लीनियराइज़्ड: आउटपुट संदर्भ कार्यान्वयन qpdf 12 से बने /Linearized डिक्शनरी और हिंट टेबल से शुरू होता है। नतीजा पेज इसकी पुष्टि करता है; WebAssembly इंजन लोड न हो सके तो टूल कहता है कि फ़ाइल लीनियराइज़्ड नहीं है।

क्या फ़ाइल साइज़ घटता है?

थोड़ा — स्ट्रीम दोबारा कंप्रेस होती हैं और बेकार ऑब्जेक्ट हटते हैं — पर यह साइड इफ़ेक्ट है। साइज़ के लिए PDF कंप्रेस करें इस्तेमाल करें।

क्या मेरी PDF किसी सर्वर पर अपलोड होती है?

नहीं। फ़ाइल आपका ब्राउज़र WebAssembly और JavaScript से खोलता और प्रोसेस करता है; Mutqan Soft या किसी और को कुछ नहीं भेजा जाता। टैब बंद करें और फ़ाइल चली जाती है। नतीजा डाउनलोड करने के लिए सिर्फ़ एक मुफ़्त अकाउंट चाहिए — न सब्सक्रिप्शन, न भुगतान।

क्या यह पासवर्ड वाली PDF पर काम करता है?

हाँ, अगर आप पासवर्ड जानते हैं: फ़ाइल सूची एक बार पासवर्ड पूछती है और फिर हर ऑपरेशन डिक्रिप्ट किए पेजों पर चलता है। नतीजा बिना पासवर्ड सेव होता है जब तक आप उसे दोबारा सुरक्षित न करें।

तकनीकी नोट्स

फ़ाइल पहले pdf-lib से फिर लिखी जाती है (ऑब्जेक्ट स्ट्रीम, नया xref), फिर qpdf को --linearize --object-streams=generate --recompress-flate --compression-level=9 के साथ दी जाती है। qpdf लीनियराइज़ेशन डिक्शनरी, हिंट स्ट्रीम और पहले पेज का क्रॉस-रेफ़रेंस फ़ाइल की शुरुआत में लिखता है। टूल Fast Web View कहने से पहले आउटपुट में /Linearized मार्कर जाँचता है।

संदर्भ