paint-brush
अपना खुद का एंड्रॉइड मोबाइल पीडीएफ स्कैनिंग टूल कैसे बनाएंद्वारा@foxitsoftware
7,546 रीडिंग
7,546 रीडिंग

अपना खुद का एंड्रॉइड मोबाइल पीडीएफ स्कैनिंग टूल कैसे बनाएं

द्वारा Foxit Software10m2023/11/07
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

निम्नलिखित मार्गदर्शिका बताती है कि आप मजबूत स्कैनिंग क्षमताओं के साथ एक ऐप को तेजी से विकसित करने के लिए फॉक्सिट के एंड्रॉइड पीडीएफ एसडीके की शक्ति का उपयोग कैसे कर सकते हैं। चाहे आप कई तस्वीरें खींच रहे हों या अपनी गैलरी से छवियों का चयन कर रहे हों, पीडीएफ बनाना एक क्लिक जितना आसान है। यह प्रोजेक्ट आपको अपने मौजूदा वर्कफ़्लो में स्कैनिंग को सहजता से एकीकृत करने का अधिकार देता है, जिससे यह आपके मोबाइल एप्लिकेशन के लिए एक मूल्यवान अतिरिक्त बन जाता है।
featured image - अपना खुद का एंड्रॉइड मोबाइल पीडीएफ स्कैनिंग टूल कैसे बनाएं
Foxit Software HackerNoon profile picture
0-item
1-item
2-item


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


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


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

सिस्टम आवश्यकताएं

Android उपकरणों की आवश्यकताएँ:

  • एंड्रॉइड 4.4 (एपीआई 19) या उच्चतर

  • 32/64-बिट ARM (armeabi-v7a/arm64-v8a) या 32/64-बिट Intel x86 CPU


  • एंड्रॉइड स्टूडियो 3.2 या नया (एंड्रॉइडएक्स का समर्थन करता है)
    हमारे डेमो के लिए रनटाइम वातावरण:
    • एंड्रॉइड स्टूडियो 3.2
    • जेडीके 1.8
    • ग्रैडल संस्करण 4.6
    • ग्रैडल बिल्ड टूल 3.2
    नोट: संस्करण 8.2 से शुरू होकर, एंड्रॉइड के लिए फॉक्सिट पीडीएफ एसडीके केवल एंड्रॉइडएक्स का समर्थन करेगा, और अब एंड्रॉइड सपोर्ट लाइब्रेरी की सेवा नहीं देगा।

विकास विन्यास

एंड्रॉइड स्टूडियो प्रारंभ करें और androidrdk/samples/viewer_ctrl_demo प्रोजेक्ट खोलें।


एंड्रॉइड स्टूडियो प्रारंभ करना

नीचे दिए गए अनुसार ग्रेडेल फ़ाइल (view_ctrl_demo/app/build.gradle) में स्कैनिंग निर्भरता लाइब्रेरी जोड़ें:


 implementation(name:'FoxitPDFScan-UI', ext:'aar') implementation(name:'FoxitMobileScanningRDK', ext:'aar') implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 


निर्भरता जोड़ना

अनुमति सेटिंग परिभाषित करें

स्कैन फ़ंक्शन को कॉल करने से पहले, आपको संग्रहण अनुमति और चित्र लेने की अनुमति प्राप्त करनी होगी। यदि स्कैन फ़ंक्शन को कॉल करने से पहले कैमरा और फोटो एलबम का उपयोग करने की अनुमति नहीं ली गई है, तो ऐप सही ढंग से नहीं चलेगा। अनुमतियाँ सेट करने के लिए नीचे दिए गए चरणों का पालन करें।


नीचे दिए गए कोड का उपयोग करके AndroidManifest फ़ाइल में अनुमति-संबंधी घोषणाएँ जोड़ें:


 <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.RUN_INSTRUMENTATION"/> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" />


फिर MainActivity.java में निम्नलिखित अनुमति अनुरोध कोड जोड़ें:


 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { int permission = ContextCompat.checkSelfPermission(this.getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE); if (permission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE); @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_EXTERNAL_STORAGE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { //Application permission is successful } else { UIToast.getInstance(getApplicationContext()).show(getString(R.string.fx_permission_denied)); finish(); } }


अब, स्कैन फ़ंक्शन से संबंधित कोड जोड़ें:


स्कैन फ़ंक्शन को कॉल करने के लिए यूआई में एक बटन जोड़ें।


एक यूआई बटन जोड़ें

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


 protected void onCreate(Bundle savedInstanceState) { (...) // Make sure to add this block of code after all the already existing // view_ctrl_demo onCreate code is loaded mRootView=uiExtensionsManager.getContentView(); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); mIvScan = new ImageView(this); mIvScan.setImageResource(R.drawable.fx_floatbutton_scan); layoutParams.bottomMargin = 80; layoutParams.rightMargin = 50; layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); mIvScan.setLayoutParams(layoutParams); mRootView.addView(mIvScan); setContentView(mRootView); initScan(); }


अब, आइए ऐप की स्कैनिंग सुविधा के लिए आधार तैयार करें। उपरोक्त onCreate विधि में कोड की अंतिम पंक्ति initScan() के लिए एक कॉल है, यह वह विधि है जिसका उपयोग हम प्रोजेक्ट के लिए प्रासंगिक कक्षाओं को आरंभ करने के लिए करेंगे।


नीचे दिया गया कोड दिखाता है कि आप फॉक्सिट के मुख्य पीडीएफ स्कैन क्लास (पीडीएफस्कैनमैनेजर) से किसी ऑब्जेक्ट को कैसे इंस्टेंट करेंगे, फिर स्कैनर और संपीड़न सुविधाओं को आरंभ करने के लिए उस क्लास का उपयोग करें। एक बार जब आप कैमरा बटन पर क्लिक करते हैं तो अंतिम विधि स्कैन कार्यक्षमता प्रदर्शित करती है।


 PDFScanManager pdfScanManager = PDFScanManager.instance() if (!PDFScanManager.isInitializeScanner()) { long framework1 = 0; long framework2 = 0; PDFScanManager.initializeScanner(App.inst().getAppActivity().getApplication(), framework1, framework2); } if (!PDFScanManager.isInitializeCompression()) { long compression1 = 0; long compression2 = 0; PDFScanManager.initializeCompression(App.inst().getAppActivity().getApplication(), compression1, compression2); } if (PDFScanManager.isInitializeScanner() && PDFScanManager.isInitializeCompression()) { //Loaded Successfully pdfScanManager.showUI(activity.this); }


फिर आरंभीकरण कोड को निम्नानुसार initScan विधि में जोड़ा जाता है। इस विधि को मेनएक्टिविटी क्लास में भी जोड़ा जाएगा और प्रोजेक्ट लोड होते ही कॉल किया जाएगा। यह सुनिश्चित करता है कि आपके प्रोजेक्ट में सभी स्कैनिंग लाइब्रेरी और कार्यक्षमता उपलब्ध होगी।


परियोजना के लिए निम्नलिखित आयात और चर आवश्यक हैं:


 import com.foxit.pdfscan.PDFScanManager; private ImageView mIvScan; private ViewGroup mRootView; private void initScan(){ final PDFScanManager pdfScanManager = PDFScanManager.instance(); mIvScan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!PDFScanManager.isInitializeScanner()) { long framework1 = 0; long framework2 = 0; PDFScanManager.initializeScanner(getApplication(), framework1, framework2); } if (!PDFScanManager.isInitializeCompression()) { long compression1 = 0; long compression2 = 0; PDFScanManager.initializeCompression(getApplication(), compression1, compression2); } if (PDFScanManager.isInitializeScanner() && PDFScanManager.isInitializeCompression()) { pdfScanManager.showUI((Activity) mContext); } else { UIToast.getInstance(getApplicationContext()) .show(AppResource.getString(getApplicationContext(), R.string.rv_invalid_license)); } } }); }


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


 public interface ScanPDFDoneCallBack { /** Success, and no error occurs */ int e_ErrSuccess = 0; /** Failed, any unknown error occurs. */ int e_ErrUnknown = 1; /** * After saving PDF successfully, return to the saving path * * @param errorCode if the scanned file is successfully saved as a pdf document, the errorCode is {@link #e_ErrSuccess}, otherwise is {@link #e_ErrUnknown} * @param savePath the document file path. */ void doneCallBack(int errorCode, String savePath); } public interface IPDFScanManagerListener { /** * Success, and no error occurs */ int e_ErrSuccess = 0; /** * Failed, any unknown error occurs. */ int e_ErrUnknown = 1; /** * Called when if the scanned file is successfully saved as a pdf document. * * @param errorCode if the scanned file is successfully saved as a pdf document, the errorCode is {@link #e_ErrSuccess}, otherwise is {@link #e_ErrUnknown} * @param path the document file path. */ void onDocumentAdded(int errorCode, String path); }


दो इंटरफेस के बीच अंतर यह है कि यदि स्कैनपीडीएफडोनकॉलबैक की निगरानी सेट है, तो जब आप नीचे दिए गए चित्र के निचले दाएं कोने में 'संपन्न' बटन पर क्लिक करते हैं, तो यह दस्तावेज़ को सीधे डिफ़ॉल्ट पथ पर सहेज देगा और स्कैनिंग इंटरफ़ेस से बाहर निकल जाएगा, और पैरामीटर savePath के माध्यम से डिफ़ॉल्ट सेव पथ पर वापस लौटें।


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


https://developers.foxit.com/dk_utwp/2021/10/android-mobile-scanning-tool-pdf-sdk-app.mp4


अब, आपको इंटरफ़ेस को MainActivity.java में जोड़कर लागू करना होगा।


 pdfScanManager.setDoneCallBack(new ScanPDFDoneCallBack() { @Override public void doneCallBack(int errorCode, final String savePath) { if (errorCode == e_ErrSuccess) { //The document was saved successfully } } }); PDFScanManager.registerManagerListener(new IPDFScanManagerListener() { @Override public void onDocumentAdded(int errorCode, String path) { if (errorCode == e_ErrSuccess) { //The document was saved successfully } } });


यदि आप पीडीएफस्कैन क्लास के आगे के इंटरफेस को लागू करना चाहते हैं, तो कृपया फॉक्सिटपीडीएफएसडीके_8_1_एंड्रॉइड/डॉक्स में एपीआई संदर्भ दस्तावेज़ देखें।


हो गया! स्कैन कार्यक्षमता आपके एप्लिकेशन में सफलतापूर्वक जोड़ दी गई है। ऐप चलाएँ, आपके द्वारा पहले बनाए गए स्कैन बटन पर क्लिक करें और अपना स्कैनिंग अनुभव शुरू करें।


हम आपके प्रोजेक्ट में संपूर्ण पीडीएफ लाइब्रेरी कार्यक्षमता जोड़ने और एक कोर एपीआई पर सभी प्लेटफार्मों और वातावरणों में विकसित करने के लिए आपके साथ काम करते हैं। यहां क्लिक करके आज ही 30 दिन का निःशुल्क परीक्षण लें।


यहाँ भी प्रकाशित किया गया है.