Пытался сделать краисво, ничего не получиолось, только норм отчет. Сейчас сделаю просто норм дезигн, перенсу бизнесс логику, а там посмотрим, уже 0:00....
This commit is contained in:
parent
c1251004ba
commit
34f379b65d
@ -228,8 +228,8 @@ private fun createPdfContent(outputStream: OutputStream, reportData: List<Report
|
|||||||
val canvas = page.canvas
|
val canvas = page.canvas
|
||||||
|
|
||||||
val paint = Paint()
|
val paint = Paint()
|
||||||
paint.color = android.graphics.Color.BLACK
|
paint.textSize = 16f // Уменьшаем размер шрифта для лучшей видимости
|
||||||
paint.textSize = 24f
|
paint.isAntiAlias = true
|
||||||
|
|
||||||
// Отображаем заголовок
|
// Отображаем заголовок
|
||||||
val title = "Отчет"
|
val title = "Отчет"
|
||||||
@ -237,14 +237,22 @@ private fun createPdfContent(outputStream: OutputStream, reportData: List<Report
|
|||||||
val yTitle = 40f
|
val yTitle = 40f
|
||||||
canvas.drawText(title, xTitle, yTitle, paint)
|
canvas.drawText(title, xTitle, yTitle, paint)
|
||||||
|
|
||||||
// Отображаем данные из запроса
|
// Отображаем данные в виде таблицы
|
||||||
val yStart = yTitle + 40f
|
val tableStartY = yTitle + 80f
|
||||||
val lineHeight = 40f
|
val columnWidths = floatArrayOf(0.5f, 1.5f, 1f, 1.5f, 1f) // Увеличиваем ширину столбцов
|
||||||
|
val rowHeight = 30f // Увеличиваем высоту строки
|
||||||
|
|
||||||
|
drawTableRow(canvas, arrayOf("ID", "Дата проверки", "Вес", "Количество", "ID велосипеда"), columnWidths, tableStartY, paint)
|
||||||
|
|
||||||
for ((index, report) in reportData.withIndex()) {
|
for ((index, report) in reportData.withIndex()) {
|
||||||
val y = yStart + index * lineHeight
|
val row = arrayOf(
|
||||||
Log.d("Проверка данных","${report.id} | ${report.dateTime} | ${report.weight} | ${report.maxCount} | ${report.bikeId}")
|
report.id.toString(),
|
||||||
val text = "${report.id} | ${report.dateTime} | ${report.weight} | ${report.maxCount} | ${report.bikeId}"
|
report.dateTime.toString(),
|
||||||
canvas.drawText(text, 40f, y, paint)
|
report.weight.toString(),
|
||||||
|
report.maxCount.toString(),
|
||||||
|
report.bikeId.toString()
|
||||||
|
)
|
||||||
|
drawTableRow(canvas, row, columnWidths, tableStartY + (index + 1) * rowHeight, paint)
|
||||||
}
|
}
|
||||||
|
|
||||||
pdfDocument.finishPage(page)
|
pdfDocument.finishPage(page)
|
||||||
@ -253,6 +261,18 @@ private fun createPdfContent(outputStream: OutputStream, reportData: List<Report
|
|||||||
pdfDocument.close()
|
pdfDocument.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun drawCell(canvas: Canvas, paint: Paint, text: String, x: Float, y: Float, width: Int) {
|
private fun drawTableRow(
|
||||||
canvas.drawText(text, x + (width - paint.measureText(text)) / 2, y + paint.textSize, paint)
|
canvas: Canvas,
|
||||||
|
row: Array<String>,
|
||||||
|
columnWidths: FloatArray,
|
||||||
|
y: Float,
|
||||||
|
paint: Paint
|
||||||
|
) {
|
||||||
|
var x = 40f
|
||||||
|
for (i in row.indices) {
|
||||||
|
val text = row[i]
|
||||||
|
canvas.drawText(text, x, y, paint)
|
||||||
|
x += columnWidths[i] * 80 // Увеличиваем ширину столбцов
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user