Çerçeve API'leri tarafından desteklenen Jetpack PDF görüntüleyici kitaplığı, Android'deki PDF belgeleriyle ilgili uygulamalar için hazır ve yüksek performanslı bir çözüm sunar.
PDF görüntüleyici kitaplığı (androidx.pdf), kullanıcılara aşağıdakileri yapma olanağı tanıyan yerleştirilebilir bir PDF görüntüleyici kullanıcı arayüzü sağlar:
- PDF dokümanlarını açma ve görüntüleme
- İçerik arama ve seçme
- Yakınlaştırma ve kaydırma
- Belge ek açıklamalarını kaydetme
- Ekran kalemi kullanarak PDF'lerle etkileşimde bulunma
Jetpack kitaplığı API'lerini entegre ederek veya doğrudan çerçeve API'lerini kullanarak tam özellikli bir PDF deneyimi oluşturabilirsiniz.
Jetpack PDF kitaplığı
Jetpack PDF kitaplığı, sayfalandırılmış PDF'ler de dahil olmak üzere PDF belgelerini oluşturan PdfViewerFragment sınıfını sağlar. Her sayfa kendi görünümünde oluşturulur. PdfViewerFragment, ek açıklama desteği için kayan işlem düğmesi gösterir ve genellikle bir arama menüsü açan bir düğme veya başka bir kullanıcı arayüzü kontrolü içerir.
PdfViewerFragment nasıl uygulanacağını öğrenmek için PDF görüntüleyici uygulama başlıklı makaleyi inceleyin.
Framework API'leri
Jetpack kitaplığı, PDF belgelerini ayrıştırmak ve yüklemek için çerçeve API'lerini kullanır.
PdfRenderer, PDF oluşturmayla ilgili temel çerçeve API'lerini sağlar.
Android V (API düzeyi 35) öncesinde, PDF işleme için API'ler PdfRenderer ve PdfRenderer.Page sınıfları tarafından sağlanıyordu. PdfRenderer ve PdfRenderer.Page sınıfları, Android V'de gelişmiş PDF özellikleriyle güncellendi.
PdfRenderer
Android V'den önceki API'ler
getPageCount(): Dokümandaki sayfa sayısını alır.openPage(index: Int): Oluşturma için bir sayfa açar.shouldScaleForPrinting(): Belgenin yazdırma için ölçeklendirilip ölçeklendirilmeyeceğini alır. Belge yazdırmak için oluşturuluyorsa ve hedef medya boyutu sayfa boyutundan farklıysa bu bilgileri dikkate alın.
Android V'de eklenen API'ler
PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams)— Yeni bir örnek oluşturur. Şifre korumalı PDF'lerin yüklenmesini destekler.getDocumentLinearizedType(): 1 KB'tan küçük PDF'ler için belgenin doğrusal hale getirilmiş türünü döndürür.getPdfFormType(): Yüklenen PDF'nin form türünü döndürür.write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean): Şu anda yüklenen belgenin durumunu, bağımsız değişken olarak iletilen yazılabilir dosya tanımlayıcısına kaydeder.
PdfRenderer.Page
PdfRenderer.Page sınıfı, oluşturma için bir PDF dokümanı sayfasını temsil eder.
Android V'den önceki API'ler
RENDER_MODE_FOR_DISPLAY— İçeriğin ekranda gösterilmesi için oluşturulma modu.RENDER_MODE_FOR_PRINT: İçeriğin yazdırma için oluşturulacağı mod.getIndex(): Sayfa dizinini alır.getWidth(): Sayfa genişliğini puan cinsinden (1/72 inç) alır.getHeight(): Sayfa yüksekliğini puan cinsinden (1/72 inç) alır.render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int): Bir sayfayı bit eşleme olarak oluşturur.
Android V'de eklenen API'ler
applyEdit(editRecord: FormEditRecord): PDF'yeFormEditRecorduygular.getFormWidgetInfos(): Sayfadaki tüm form widget'ları hakkında bilgi döndürür.getFormWidgetInfos(types: IntArray): Sayfadaki belirtilen türlerdeki tüm form widget'ları hakkında bilgi döndürür.getFormWidgetInfoAtIndex(widgetIndex: Int)—widgetIndexbağımsız değişkeniyle tanımlanan widget hakkında bilgi döndürür.fun getFormWidgetInfoAtPosition(x: Int, y: Int)— Belirtilen noktadaki widget hakkında bilgi döndürür.getGotoLinks(): PDF dokümanının sayfasında bulunan yer işaretlerini ve git bağlantılarını alır.getImageContents(): Sayfada bulunanPdfPageImageContentlistesini döndürür.getLinkContents(): Sayfadaki tüm bağlantıların sınırlarını ve URL'lerini alır.getTextContents(): SayfadakiPdfPageTextContentlistesini döndürür.render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams): Bir sayfayı bit eşleme olarak oluşturur.searchText(query: String): Sayfada verilen dizeyi arar ve tüm eşleşmelerin sınırlarını döndürür.selectContent(start: SelectionBoundary, stop: SelectionBoundary)— İki sınır arasındaki içeriği temsil eden birPageSelectiondöndürür.
API kullanımı
PdfRenderer#write()API, yüklenen PDF'nin bir sürümünüParcelFileDescriptor'ye yazar. Kullanım alanları şunlardır:- PDF belgesinin şifre güvenliği kaldırıldıktan sonra kopyasını kaydetme
- Düzenlemeleri (notlar, form doldurma vb.) kaydetme
PdfRenderer.Page#render()API'leri bir sayfayı veya sayfanın bir bölümünü bit eşleme olarak oluşturur. Yakınlaştırma durumunda API, sayfanın bir bölümünü belirli bir boyutta bit eşleme olarak oluşturmak için de kullanılabilir.PdfRenderer.PageAPI'lerigetImageContents(),getLinkContents()vegetTextContents(), sayfada bulunan içerikleri döndürür. İçeriği, erişilebilirlik ve TalkBack duyuruları için veya sayfayı özetleme gibi yapay zeka destekli özelliklerde kullanabilirsiniz.PdfRenderer.Page#selectContentAPI, bir sayfada bulunan içeriği seçer. Seçilen içeriği aşağıdaki gibi işlemler için kullanabilirsiniz:- Telefon numarası varsa arama
- Adres seçiliyse Haritalar
- Kopyala
- Paylaş
- Yorumlar
Uyumluluk
PdfRendererPreV sınıfı, Android V API'lerini Android R'den U'ya (API düzeyleri 30-34) sunar.
Ek kaynaklar
Uygulamanıza PDF görüntüleyici eklemeyi öğrenmek için PDF görüntüleyici uygulama başlıklı makaleyi inceleyin.