फ़्रेमवर्क एपीआई पर आधारित Jetpack PDF व्यूअर लाइब्रेरी, Android पर PDF दस्तावेज़ से जुड़े ऐप्लिकेशन के लिए, तैयार किया गया और बेहतर परफ़ॉर्म करने वाला समाधान उपलब्ध कराती है.
PDF व्यूअर लाइब्रेरी (androidx.pdf) में, एम्बेड किया जा सकने वाला PDF व्यूअर यूज़र इंटरफ़ेस (यूआई) होता है. इससे उपयोगकर्ता ये काम कर सकते हैं:
- PDF दस्तावेज़ खोलना और देखना
- कॉन्टेंट खोजना और उसे चुनना
- ज़ूम और स्क्रोल करना
- दस्तावेज़ के एनोटेशन सेव करना
- स्टाइलस का इस्तेमाल करके, PDF के साथ इंटरैक्ट करना
Jetpack लाइब्रेरी के एपीआई को इंटिग्रेट करके या फ़्रेमवर्क के एपीआई का सीधे तौर पर इस्तेमाल करके, PDF से जुड़े सभी फ़ीचर का इस्तेमाल किया जा सकता है.
Jetpack PDF लाइब्रेरी
Jetpack PDF लाइब्रेरी, PdfViewerFragment क्लास उपलब्ध कराती है. यह क्लास, पेज वाले PDF दस्तावेज़ों के साथ-साथ अन्य PDF दस्तावेज़ों को रेंडर करती है. हर पेज को उसके व्यू में रेंडर किया जाता है. PdfViewerFragment में एनोटेशन की सुविधा के लिए, फ़्लोटिंग ऐक्शन बटन दिखता है. आम तौर पर, इसमें एक बटन या अन्य यूज़र इंटरफ़ेस कंट्रोल शामिल होता है, जो खोज मेन्यू खोलता है.
PdfViewerFragment को लागू करने का तरीका जानने के लिए, PDF व्यूअर लागू करना लेख पढ़ें.
फ़्रेमवर्क एपीआई
Jetpack लाइब्रेरी, PDF दस्तावेज़ों को पार्स करने और लोड करने के लिए, फ़्रेमवर्क एपीआई का इस्तेमाल करती है.
PdfRenderer, PDF रेंडरिंग से जुड़े बुनियादी फ़्रेमवर्क एपीआई उपलब्ध कराता है.
Android V (एपीआई लेवल 35) से पहले, PdfRenderer और PdfRenderer.Page क्लास, PDF को मैनेज करने के लिए एपीआई उपलब्ध कराती थीं. Android V में PdfRenderer और PdfRenderer.Page क्लास को अपडेट किया गया है. इसमें PDF की ऐडवांस सुविधाएं शामिल हैं.
PdfRenderer
Android V से पहले के एपीआई
getPageCount()— इससे दस्तावेज़ में पेजों की संख्या मिलती है.openPage(index: Int)— इससे रेंडरिंग के लिए एक पेज खुलता है.shouldScaleForPrinting()— इससे पता चलता है कि दस्तावेज़ को प्रिंट करने के लिए स्केल किया जाना चाहिए या नहीं. अगर दस्तावेज़ को प्रिंट करने के लिए रेंडर किया जाता है और टारगेट मीडिया का साइज़, पेज के साइज़ से अलग है, तो इस जानकारी को ध्यान में रखें.
Android V में जोड़े गए एपीआई
PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams)— यह एक नया इंस्टेंस बनाता है. पासवर्ड से सुरक्षित की गई PDF फ़ाइलों को लोड करने की सुविधा देता है.getDocumentLinearizedType()— यह 1 केबी से कम साइज़ वाले PDF के लिए, दस्तावेज़ का लीनियर टाइप दिखाता है.getPdfFormType()— इससे लोड किए गए PDF का फ़ॉर्म टाइप दिखता है.write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean)— इससे, मौजूदा समय में लोड किए गए दस्तावेज़ की स्थिति को ऐसे फ़ाइल डिस्क्रिप्टर में सेव किया जाता है जिसे तर्क के तौर पर पास किया गया है.
PdfRenderer.Page
PdfRenderer.Page क्लास, रेंडरिंग के लिए PDF दस्तावेज़ के पेज को दिखाती है.
Android V से पहले के एपीआई
RENDER_MODE_FOR_DISPLAY— यह मोड, स्क्रीन पर कॉन्टेंट दिखाने के लिए इस्तेमाल किया जाता है.RENDER_MODE_FOR_PRINT— यह मोड, कॉन्टेंट को प्रिंट करने के लिए रेंडर करता है.getIndex()— इससे पेज का इंडेक्स मिलता है.getWidth()— इससे पेज की चौड़ाई पॉइंट में मिलती है. एक पॉइंट, एक इंच का 1/72 हिस्सा होता है.getHeight()— इससे पेज की ऊंचाई पॉइंट में मिलती है. एक पॉइंट, एक इंच का 1/72 हिस्सा होता है.render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int)— इससे पेज को बिटमैप में रेंडर किया जाता है.
Android V में जोड़े गए एपीआई
applyEdit(editRecord: FormEditRecord)— इससे पीडीएफ़ मेंFormEditRecordलागू होता है.getFormWidgetInfos()— इससे पेज पर मौजूद सभी फ़ॉर्म विजेट के बारे में जानकारी मिलती है.getFormWidgetInfos(types: IntArray)— यह पेज पर मौजूद, चुने गए टाइप के सभी फ़ॉर्म विजेट के बारे में जानकारी दिखाता है.getFormWidgetInfoAtIndex(widgetIndex: Int)—widgetIndexआर्ग्युमेंट से पहचाने गए विजेट के बारे में जानकारी दिखाता है.fun getFormWidgetInfoAtPosition(x: Int, y: Int)— यह फ़ंक्शन, दिए गए पॉइंट पर विजेट के बारे में जानकारी दिखाता है.getGotoLinks()— इससे PDF दस्तावेज़ के पेज पर मौजूद बुकमार्क और गो टू लिंक मिलते हैं.getImageContents()— इससे पेज पर मौजूदPdfPageImageContentकी सूची मिलती है.getLinkContents()— इससे पेज पर मौजूद सभी लिंक की सीमाएं और यूआरएल मिलते हैं.getTextContents()— इससे पेज पर मौजूदPdfPageTextContentकी सूची मिलती है.render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams)— इससे पेज को बिटमैप में रेंडर किया जाता है.searchText(query: String)— यह फ़ंक्शन, पेज पर दी गई स्ट्रिंग को खोजता है और मेल खाने वाले सभी शब्दों की सीमाएं दिखाता है.selectContent(start: SelectionBoundary, stop: SelectionBoundary)— यह एकPageSelectionदिखाता है, जो दो सीमाओं के बीच के कॉन्टेंट को दिखाता है.
एपीआई का इस्तेमाल
PdfRenderer#write()एपीआई, लोड की गई PDF फ़ाइल के वर्शन कोParcelFileDescriptorमें लिखता है. इस्तेमाल के उदाहरणों में ये शामिल हैं:- पासवर्ड सुरक्षा हटाने के बाद, PDF दस्तावेज़ की कॉपी सेव करना
- बदलाव सेव करना (एनोटेशन, फ़ॉर्म भरना वगैरह)
PdfRenderer.Page#render()एपीआई, किसी पेज या पेज के किसी हिस्से को बिटमैप में रेंडर करते हैं. ज़ूम करने के मामले में, एपीआई का इस्तेमाल पेज के किसी हिस्से को दिए गए साइज़ के बिटमैप में रेंडर करने के लिए भी किया जा सकता है.PdfRenderer.PageएपीआईgetImageContents(),getLinkContents(), औरgetTextContents(), पेज पर उपलब्ध कॉन्टेंट दिखाते हैं. इस कॉन्टेंट का इस्तेमाल, ऐक्सेसिबिलिटी और TalkBack की सूचनाओं के लिए किया जा सकता है. इसके अलावा, एआई की सुविधा वाली सुविधाओं में भी इसका इस्तेमाल किया जा सकता है. जैसे, पेज की खास जानकारी जनरेट करना.PdfRenderer.Page#selectContentAPI, किसी पेज पर उपलब्ध कॉन्टेंट को चुनता है. चुने गए कॉन्टेंट का इस्तेमाल इन कार्रवाइयों के लिए किया जा सकता है:- फ़ोन नंबर चुनने पर कॉल करना
- पता चुनने पर Maps देखना
- कॉपी करें
- शेयर करें
- टिप्पणियां
इनके साथ काम करता है
PdfRendererPreV क्लास, Android R से लेकर U (एपीआई लेवल 30–34) तक के Android V API को दिखाता है.
अन्य संसाधन
अपने ऐप्लिकेशन में PDF व्यूअर जोड़ने का तरीका जानने के लिए, PDF व्यूअर लागू करना लेख पढ़ें.