Я использую следующий код для создания документа и записи в файл. Однако когда я просматриваю созданный PDF-файл, все виды были нарисованы, кроме изображений. Я попытался установить макет в качестве содержимого действия, чтобы выяснить, не были ли мои изображения повреждены или мне пришлось изменить их размер, но при запуске приложения они отображаются безупречно. В чем может быть проблема в этом случае? Нужно ли писать изображения программно?
Вот код:
val view = LayoutInflater.from(context).inflate(R.layout.pdf, null)
val displayMetrics = DisplayMetrics()
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
context.display?.getRealMetrics(displayMetrics)
} else {
context.windowManager.defaultDisplay?.getMetrics(displayMetrics)
}
view.measure(
View.MeasureSpec.makeMeasureSpec(displayMetrics.widthPixels, View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(displayMetrics.heightPixels, View.MeasureSpec.EXACTLY))
view.layout(0,0, displayMetrics.widthPixels, displayMetrics.heightPixels)
val document = PdfDocument()
val width = view.measuredWidth
val height = view.measuredHeight
val pageInfo = PdfDocument.PageInfo.Builder(width, height, 1).create()
val page = document.startPage(pageInfo)
val canvas = page.canvas
val bitMap = loadBitmapFromView(width, height)
canvas.drawBitmap(bitMap, 0f,0f, null)
view.draw(canvas)
document.finishPage(page)
document.writeTo(outputStream)
document.close()
}
private fun loadBitmapFromView(width: Int, height: Int): Bitmap {
val b: Bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
return b
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... in-android