Пытался сделать краисво, ничего не получиолось, только норм отчет. Сейчас сделаю просто норм дезигн, перенсу бизнесс логику, а там посмотрим, уже 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 paint = Paint()
|
||||
paint.color = android.graphics.Color.BLACK
|
||||
paint.textSize = 24f
|
||||
paint.textSize = 16f // Уменьшаем размер шрифта для лучшей видимости
|
||||
paint.isAntiAlias = true
|
||||
|
||||
// Отображаем заголовок
|
||||
val title = "Отчет"
|
||||
@ -237,14 +237,22 @@ private fun createPdfContent(outputStream: OutputStream, reportData: List<Report
|
||||
val yTitle = 40f
|
||||
canvas.drawText(title, xTitle, yTitle, paint)
|
||||
|
||||
// Отображаем данные из запроса
|
||||
val yStart = yTitle + 40f
|
||||
val lineHeight = 40f
|
||||
// Отображаем данные в виде таблицы
|
||||
val tableStartY = yTitle + 80f
|
||||
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()) {
|
||||
val y = yStart + index * lineHeight
|
||||
Log.d("Проверка данных","${report.id} | ${report.dateTime} | ${report.weight} | ${report.maxCount} | ${report.bikeId}")
|
||||
val text = "${report.id} | ${report.dateTime} | ${report.weight} | ${report.maxCount} | ${report.bikeId}"
|
||||
canvas.drawText(text, 40f, y, paint)
|
||||
val row = arrayOf(
|
||||
report.id.toString(),
|
||||
report.dateTime.toString(),
|
||||
report.weight.toString(),
|
||||
report.maxCount.toString(),
|
||||
report.bikeId.toString()
|
||||
)
|
||||
drawTableRow(canvas, row, columnWidths, tableStartY + (index + 1) * rowHeight, paint)
|
||||
}
|
||||
|
||||
pdfDocument.finishPage(page)
|
||||
@ -253,6 +261,18 @@ private fun createPdfContent(outputStream: OutputStream, reportData: List<Report
|
||||
pdfDocument.close()
|
||||
}
|
||||
|
||||
private fun drawCell(canvas: Canvas, paint: Paint, text: String, x: Float, y: Float, width: Int) {
|
||||
canvas.drawText(text, x + (width - paint.measureText(text)) / 2, y + paint.textSize, paint)
|
||||
private fun drawTableRow(
|
||||
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