If you are developing an Android application using Kotlin and facing the issue “Kotlin PDF Viewer Not Displaying File”, you are not alone. Many developers struggle when integrating a PDF viewer into their apps, especially when the PDF file is not displayed properly. This guide will walk you through the common causes, solutions, and provide a complete example with code snippets you can directly test in your Android Studio project.

Why PDF Files Are Not Displaying in Kotlin Apps?
Before diving into the solution, let’s explore some common reasons why your PDF viewer might not display the file:
- Incorrect file path: The PDF file is not being referenced correctly from assets or storage.
- Permission issues: Missing READ_EXTERNAL_STORAGE permission if you are loading from external storage.
- Unsupported library: Using a PDF library that does not fully support Android 11+ scoped storage changes.
- UI rendering issues: Not setting the PDFView widget properly in your layout.
Best Libraries to Display PDF in Kotlin
There are several popular libraries to display PDFs in Android:
Library | Pros | Cons |
---|---|---|
AndroidPdfViewer (barteksc) | Lightweight, widely used, supports zoom and swipe | No editing feature |
PdfRenderer (Android SDK) | No external dependency, works natively | Requires manual implementation for navigation |
MuPDF | Supports annotations and complex PDF | Heavier library size |
Step-by-Step Solution with AndroidPdfViewer
Here is a practical example using AndroidPdfViewer by barteksc, one of the most popular libraries for PDF rendering in Kotlin apps.
1. Add Dependency
implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'
2. Update Layout (activity_main.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.github.barteksc.pdfviewer.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>
3. Load PDF from Assets (MainActivity.kt)
package com.example.pdfviewer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.github.barteksc.pdfviewer.PDFView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val pdfView = findViewById<PDFView>(R.id.pdfView) // Load PDF file from assets folder pdfView.fromAsset("sample.pdf") .enableSwipe(true) // allow swiping .swipeHorizontal(false) .enableDoubletap(true) .load() } }
4. Place Your PDF File
Put your sample.pdf
file in the app/src/main/assets/
folder. If the folder doesn’t exist, create it manually.
5. Handling PDF from Storage
If you want to load a PDF from internal or external storage, make sure you have the correct permissions:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
val file = File(Environment.getExternalStorageDirectory(), "Download/myfile.pdf") pdfView.fromFile(file) .enableSwipe(true) .load()
Common Fixes for “Not Displaying File” Error
- Verify the PDF file exists in the correct path.
- Check logcat for errors like
FileNotFoundException
orSecurityException
. - Ensure PDF is not corrupted by opening it with another app.
- For Android 11+, use
Scoped Storage
or Storage Access Framework to handle files.
Debugging Tips
- Use
Log.d
to print file paths before loading the PDF. - Wrap your PDF loading code in a
try-catch
block to handle exceptions. - Test with a simple small PDF before using large or encrypted files.
Conclusion
When facing the issue “Kotlin PDF Viewer Not Displaying File”, the most important steps are verifying the file path, ensuring permissions, and using a reliable PDF library like AndroidPdfViewer. By following the steps and code examples above, you should be able to fix the problem and display PDFs smoothly in your Kotlin Android application.
For further reading about Android PDF rendering, check out the official Android PdfRenderer documentation.