Я использую Pdfium Android для загрузки страниц PDF в качестве изображений. Это библиотека, которую я использую.
implementation 'com.github.barteksc:pdfium-android:1.9.0'
Ниже приведен код, который я использую для преобразования pdf в изображения
private fun generateImageFromPdf(assetFile: File): ArrayList<Bitmap>? {
val pdfiumCore = PdfiumCore(this)
val pageList = ArrayList<Bitmap>()
try {
val pdfDocument = pdfiumCore.newDocument(
ParcelFileDescriptor.open(
assetFile,
ParcelFileDescriptor.MODE_READ_ONLY
)
)
for (i in 0 until pdfiumCore.getPageCount(pdfDocument)) {
pdfiumCore.openPage(pdfDocument, i)
val width = pdfiumCore.getPageWidthPoint(pdfDocument, i)
val height = pdfiumCore.getPageHeightPoint(pdfDocument, i)
val bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
pdfiumCore.renderPageBitmap(pdfDocument, bmp, i, 0, 0, width, height)
pageList.add(bmp)
}
pdfiumCore.closeDocument(pdfDocument)
return pageList
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
Приведенный выше код работает для некоторых файлов PDF должным образом, но для некоторых PDF, он начинает выдавать исключение "Файл пуст".