paint-brush
Kendi Android Mobil PDF Tarama Aracınızı Nasıl Oluşturabilirsiniz?ile@foxitsoftware
7,546 okumalar
7,546 okumalar

Kendi Android Mobil PDF Tarama Aracınızı Nasıl Oluşturabilirsiniz?

ile Foxit Software10m2023/11/07
Read on Terminal Reader

Çok uzun; Okumak

Aşağıdaki kılavuz, güçlü tarama özelliklerine sahip bir uygulamayı hızlı bir şekilde geliştirmek için Foxit'in Android PDF SDK'sının gücünden nasıl yararlanabileceğinizi özetlemektedir. İster birden fazla fotoğraf çekiyor olun ister galerinizden görsel seçiyor olun, PDF oluşturmak tek bir tıklama kadar kolaydır. Bu proje, taramayı mevcut iş akışlarınıza sorunsuz bir şekilde entegre etmenize olanak tanıyarak onu mobil uygulamanıza değerli bir katkı haline getirir.
featured image - Kendi Android Mobil PDF Tarama Aracınızı Nasıl Oluşturabilirsiniz?
Foxit Software HackerNoon profile picture
0-item
1-item
2-item


Doğrudan PDF'ye mobil tarama, belge iş akışlarınızda devrim yaratabilir. Otomatik sayfa algılama, daha iyi aydınlatma için dahili flaş, hassas renk yönetimi ve profesyonel kalitede PDF'ler oluşturmak için özel olarak tasarlanmış kamera ayarları gibi özelliklerle donatılan son teknoloji sayesinde, akıllı telefonunuzda yalnızca birkaç dokunuşla olağanüstü sonuçlar elde edebilirsiniz. teknoloji.


Aşağıdaki kılavuz, güçlü tarama özelliklerine sahip bir uygulamayı hızlı bir şekilde geliştirmek için Foxit'in Android PDF SDK'sının gücünden nasıl yararlanabileceğinizi özetlemektedir. İster birden fazla fotoğraf çekiyor olun ister galerinizden görsel seçiyor olun, PDF oluşturmak tek bir tıklama kadar kolaydır. Bu proje, taramayı mevcut iş akışlarınıza sorunsuz bir şekilde entegre etmenize olanak tanıyarak onu mobil uygulamanıza değerli bir katkı haline getirir.


Öğeleri değiştirmeye veya kullanıcı arayüzünü yeniden tasarlamaya gerek kalmadan kendi işinizi veya uygulama markalamanızı zahmetsizce birleştirme özgürlüğüne sahipsiniz. Özel bir mobil tarama düğmesine sahip boş bir PDF görüntüleyici sağlar ve benzersiz uygulamanızı oluşturmanız için bir temel görevi görür.

sistem gereksinimleri

Android cihazların gereksinimleri:

  • Android 4.4 (API 19) veya üzeri

  • 32/64 bit ARM (armeabi-v7a/arm64-v8a) veya 32/64 bit Intel x86 CPU


  • Android Studio 3.2 veya daha yenisi (AndroidX'i destekler)
    Demolarımız için çalışma zamanı ortamı:
    • Android Stüdyosu 3.2
    • JDK 1.8
    • Gradle Sürüm 4.6
    • Gradle Oluşturma Aracı 3.2
    Not: Sürüm 8.2'den başlayarak, Foxit PDF SDK for Android yalnızca AndroidX'i destekleyecektir ve artık Android destek kitaplığına hizmet vermeyecektir.

Geliştirme Yapılandırması

Android Studio'yu başlatın ve androidrdk/samples/viewer_ctrl_demo projesini açın.


Android Studio'yu başlatma

Tarama bağımlılığı kitaplığını gradle dosyasına (view_ctrl_demo/app/build.gradle) aşağıdaki gibi ekleyin:


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


Bağımlılık ekleme

İzin ayarlarını tanımlayın

Tarama işlevini çağırmadan önce depolama izni ve fotoğraf çekme izni almanız gerekir. Tarama işlevi çağrılmadan önce kamerayı ve fotoğraf albümünü kullanma izni alınmazsa uygulama düzgün çalışmayacaktır. İzinleri ayarlamak için aşağıdaki adımları izleyin.


Aşağıdaki kodu kullanarak AndroidManifest dosyasına izinle ilgili bildirimler ekleyin:


 <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" />


Daha sonra MainActivity.java'ya aşağıdaki izin isteği kodunu ekleyin:


 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(); } }


Şimdi Scan fonksiyonu ile ilgili kodu ekleyelim:


Tarama işlevini çağırmak için kullanıcı arayüzüne bir düğme ekleyin.


Kullanıcı arayüzü düğmesi ekleme

Öncelikle kamera düğmesi simgesini eklemek için bir kod yazın. Düğmenin düzenini, konumunu ve görüntü kaynağını tanımlayacaksınız. Bu kod, proje yüklenir yüklenmez butonun görüntülenmesini sağlamak için MainActivity dosyasının onCreate metoduna eklenir. Bunu sonra eklediğinizden emin olun:


 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(); }


Şimdi uygulamanın tarama özelliğinin temelini oluşturalım. Yukarıdaki onCreate yöntemindeki son kod satırı, proje için ilgili sınıfları başlatmak için kullanacağımız yöntem olan initScan() çağrısıdır.


Aşağıdaki kod, Foxit'in ana PDF Tarama sınıfından (PDFScanManager) bir nesneyi nasıl örnekleyeceğinizi, ardından tarayıcıyı ve sıkıştırma özelliklerini başlatmak için bu sınıfı nasıl kullanacağınızı gösterir. Son yöntem, kamera düğmesine tıkladığınızda tarama işlevini görüntüler.


 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); }


Başlatma kodu daha sonra initScan yöntemine aşağıdaki gibi eklenir. Bu yöntem ayrıca MainActivity sınıfına eklenecek ve proje yüklenir yüklenmez çağrılacaktır. Bu, projenizin tüm tarama kitaplıklarına ve işlevlerine sahip olmasını sağlar.


Proje için aşağıdaki içe aktarmalar ve değişkenler gereklidir:


 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)); } } }); }


Artık kitaplığı başlattığımıza ve temel oluşturulduğuna göre, belgeyi tarandıktan sonra kaydetmek için kullanılacak iki temel geri çağırma arabirimi yazacağız: birincisi tamamen özel olan ScanPDFDoneCallBack ve ikincisi IPDFScanManagerListener. SDK'da kullanıma hazır olarak mevcuttur. Her ikisini de aşağıya bakın:


 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); }


İki arayüz arasındaki fark, ScanPDFDoneCallBack izlemesi ayarlanmışsa, aşağıdaki şeklin sağ alt köşesindeki 'Bitti' düğmesine tıkladığınızda, belgeyi doğrudan varsayılan yola kaydedip tarama arayüzünden çıkacak ve savePath parametresi aracılığıyla varsayılan kaydetme yoluna dönün.


ScanPDFDoneCallBack ayarlanmamışsa, aşağıdaki şeklin sağ alt köşesindeki 'Bitti' butonuna tıkladığınızda, kaydetme dizinini seçmek için bir arayüz açılacaktır. Kullanıcı belirtilen dizini seçer ve belge, kullanıcı tarafından seçilen dizine kaydedilir.


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


Artık arayüzleri MainActivity.java'ya ekleyerek uygulamanız gerekir.


 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 } } });


pdfscan sınıfının diğer arayüzlerini uygulamak istiyorsanız lütfen foxitpdfsdk_8_1_android/docs adresindeki API Referans belgelerine bakın.


Tamamlamak! Tarama işlevi uygulamanıza başarıyla eklendi. Uygulamayı çalıştırın, daha önce oluşturduğunuz Tara düğmesine tıklayın ve tarama deneyiminize başlayın.


Projenize eksiksiz PDF kitaplığı işlevselliği eklemek ve tek bir temel API üzerinde tüm platformlar ve ortamlarda geliştirme yapmak için sizinle birlikte çalışıyoruz. Buraya tıklayarak bugün 30 günlük ücretsiz deneme sürümünü kullanın.


Burada da yayınlandı.