लाइसेंस

pdfgym ओपन-सोर्स लाइब्रेरी से जुड़कर बना है, कोड ब्राउज़र में जाकर काम करता है। ज़्यादातर ढीले लाइसेंस वाली। दो copyleft वाली, दोनों अपने-अपने रूट पर रहती हैं। नीचे काम के हिसाब से बंटी हर लाइब्रेरी, लाइसेंस और पढ़ने की जगह के साथ।

पढ़ना और लिखना

हर ऑपरेशन के दोनों हिस्से। रीडर ही जांचकर्ता है: हर नतीजा दोबारा खोलता है, पेज पर सच में उतरी चीज़ बताता है।

लाइब्रेरीकामलाइसेंससोर्स
pdf.js कामPDF पढ़ता-रेंडर करता है, हर नतीजा ज़रूर जांचता है। लाइसेंसApache-2.0 सोर्सपूरा टेक्स्ट
@cantoo/pdf-lib कामPDF लिखता है। लाइसेंसMIT सोर्सपूरा टेक्स्ट

इमेज और फॉन्ट

PDF पेज पर टेक्स्ट के सिवा सब कुछ: JPEG एनकोडर, pdf.js में छिपे डिकोडर, TIFF सपोर्ट, एम्बेडेड फॉन्ट को छोटा करने वाली फॉन्ट कटिंग।

लाइब्रेरीकामलाइसेंससोर्स
@jsquash/jpeg कामब्राउज़र में JPEG एनकोडर चलाता है। लाइसेंसApache-2.0 सोर्सपूरा टेक्स्ट
mozjpeg, libjpeg-turbo कामJPEG एनकोडर खुद। लाइसेंसतीन BSD-स्टाइल लाइसेंस, IJG समेत सोर्सपूरा टेक्स्ट
harfbuzzjs कामएम्बेडेड फॉन्ट को दस्तावेज़ के बने अक्षरों तक छोटा करता है। लाइसेंसMIT सोर्सपूरा टेक्स्ट
UTIF.js कामस्टैंडर्ड और कई-पेज TIFF डिकोड करता है। लाइसेंसMIT सोर्सपूरा टेक्स्ट
pako कामUTIF.js के लिए TIFF इमेज कंप्रेस डेटा खोलता है। लाइसेंसMIT और Zlib सोर्सपूरा टेक्स्ट
OpenJPEG कामpdf.js में JPEG 2000 इमेज डिकोड करता है। लाइसेंसBSD-2-Clause सोर्सपूरा टेक्स्ट
JBIG2, from PDFium कामpdf.js में JBIG2 इमेज डिकोड करता है। लाइसेंसBSD, The PDFium Authors सोर्सपूरा टेक्स्ट
qcms कामpdf.js में ICC कलर प्रोफाइल लगाता है। लाइसेंसMIT, Mozilla सोर्सपूरा टेक्स्ट

प्राइवेसी टेक्स्ट की पहचान

प्राइवेसी टूल बताते हैं क्या निजी जानकारी हो सकती है। मॉडल और उसे चलाने वाला दोनों ब्राउज़र में आते हैं, पहचान बाहर नहीं जाती।

लाइब्रेरीकामलाइसेंससोर्स
Google BERT Mini कामप्राइवेसी पहचान के लिए चार-लेयर बेस मॉडल। लाइसेंसApache-2.0 सोर्ससोर्स रिकॉर्ड
ONNX Runtime Web 1.29.0 कामब्राउज़र worker में पहचानकर्ता चलाता है। लाइसेंसMIT सोर्सपूरा टेक्स्ट

शर्तों वाले दो मेहमान

MuPDF और Ghostscript दो जाने-माने PDF इंजन AGPL v3 हैं। दोनों में से कोई वेब सर्विस के पीछे लगे, तो ऑपरेटर को पूरी सर्विस उन्हीं शर्तों पर खोलनी पड़ती है।

pdfgym दोनों इस्तेमाल नहीं करता।

भेजी जाने वाली दोनों copyleft चीज़ें अपने-अपने रूट पर रहती हैं।

HEIC डिकोडर सिर्फ HEIC से PDF पर HEIC या HEIF फोटो चुनने के बाद ही आता है। Print preflight का कलर-सेपरेशन रेंडरर सिर्फ प्रिंट प्रीफ्लाइट से चलता है, अपने worker में।

बाकी टूल इन दोनों को इंपोर्ट-लिंक कुछ नहीं करते।

लाइब्रेरीकामलाइसेंससोर्स
@discourse/heic कामसिर्फ HEIC-से-PDF रूट पर HEIC डिकोडर लोड करता है। लाइसेंसApache-2.0 सोर्सपूरा टेक्स्ट
libheif 1.19.7 कामरूट के अंदर डिकोडर में HEIC कंटेनर पढ़ता है। लाइसेंसLGPL-3.0-or-later सोर्सठीक सोर्स
libde265 1.0.15 कामरूट के अंदर डिकोडर में HEVC इमेज डिकोड करता है। लाइसेंसLGPL-3.0-or-later सोर्सठीक सोर्स
Poppler 26.02.0 कामप्रिंट प्रीफ्लाइट के लिए कलर-सेपरेशन रेंडर करता है, अपने worker में। लाइसेंसGPL-2.0-or-later सोर्सपूरा टेक्स्ट
OpenJPEG 2.5.3 कामउसी worker में JPEG 2000 इमेज डिकोड करता है। लाइसेंसBSD-2-Clause सोर्सपूरा टेक्स्ट

दोनों अपस्ट्रीम का रिलीज़ कोड इस्तेमाल करते हैं, एक जगह बदलाव नहीं।

प्रिंट प्रीफ्लाइट बिल्ड खुले सोर्स से दोबारा बनाई जा सकती है: सोर्स रिकॉर्ड ठीक Poppler और OpenJPEG पैकेज और SHA-256, Emscripten इमेज digest, और WebAssembly बनाने वाले एडाप्टर और बिल्ड स्क्रिप्ट बताता है।

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

कोड अपने प्रोजेक्ट में ले जा सकते हैं?
हर लाइब्रेरी अपना लाइसेंस रखती है, ऊपर पूरा टेक्स्ट है। ढीले लाइसेंस (MIT, BSD, Apache-2.0) नाम देकर इस्तेमाल हो सकते हैं; LGPL डिकोडर और GPL रेंडरर टेक्स्ट के हिसाब से copyleft ज़िम्मेदारी निभाएं।
copyleft हिस्से एक-एक रूट पर क्यों बंद हैं?
ताकि ज़िम्मेदारी छोटी और जांची हुई रहे। HEIC डिकोडर सिर्फ HEIC फोटो पढ़ने पर लोड होता है, Poppler worker सिर्फ प्रिंट प्रीफ्लाइट सुनता है। बाकी दोनों को इंपोर्ट-लिंक कुछ नहीं करते।
लाइब्रेरी बदली हुई हैं?
नहीं। अपस्ट्रीम रिलीज़ जैसी है वैसी भेजी जाती है, इसलिए ऊपर वर्शन और सोर्स रिकॉर्ड एकदम ठीक हैं। कम्युनिटी फिक्स अगले अपडेट में आ जाते हैं, प्राइवेट फोर्क नहीं पाला जाता।
साइट का अपना कोड कहां है?
लाइब्रेरी जोड़ने वाले टूल — वर्कस्पेस, जांच, पेज — प्रोजेक्ट का अपना काम हैं। भारी काम लाइब्रेरी ऊपर की शर्तों पर करती हैं, खराब डाउनलोड रोकने वाली जांच हमारी है।

आगे कहां जाएं