Commit c7d9242b authored by wanglei's avatar wanglei

...

parent 595ebc8f
......@@ -95,7 +95,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
binding.tvQr.text = content
qrStringArray = content.split("\n").toTypedArray()
generateQRCode()
generateQRCode(0.4f, 3.0f)
}
KEY_PRODUCT -> {
......@@ -116,12 +116,12 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
}
fun generateQRCode() {
fun generateQRCode(scale: Float = 0.5f, imageYRate: Float = 2f) {
Thread {
val bitmap = generateQRCode(qrString, 735, 735, 5)
runOnUiThread { binding.ivQr.setImageBitmap(bitmap) }
bitmap?.let { generatePdfFile(it, 0.5f, 30f) }
bitmap?.let { generatePdfFile(it, scale, imageYRate) }
}.start()
}
......@@ -130,11 +130,11 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
val bitmap = QRCodeUtils.generateEAN13Barcode(qrString, 648, 255)
runOnUiThread { binding.ivQr.setImageBitmap(bitmap) }
bitmap?.let { generatePdfFile(it, 0.5f, 50f) }
bitmap?.let { generatePdfFile(it, 0.5f, 2f) }
}.start()
}
fun generatePdfFile(bitmap: Bitmap, scale: Float = 0.5f, margin: Float = 50f) {
fun generatePdfFile(bitmap: Bitmap, scale: Float, imageYRate: Float) {
val tempPdf = File(this.cacheDir, "${pdfQrName}_${System.currentTimeMillis()}.pdf")
this.cacheDir.mkdirs()
tempPdf.createNewFile()
......@@ -146,7 +146,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
true
)
val flag = generatePdfWithTextAndImage(tempPdf, scaledBitmap, qrType, qrStringArray, margin)
val flag = generatePdfWithTextAndImage(tempPdf, scaledBitmap, qrType, qrStringArray, imageYRate)
if (flag) {
LogEx.logDebug(TAG, "${tempPdf.absoluteFile}")
pdfTempFile = tempPdf
......
......@@ -15,7 +15,7 @@ object ExportPdf {
bitmap: Bitmap,
qrType: String,
qrStrings: Array<String>,
marginVertical: Float = 50f
imageYRate: Float//图片水平位置比例,2水平居中,小于2偏下,大于2偏上
): Boolean {
// A4纸张大小(单位:点,1英寸=72点)
val pageWidth = 595
......@@ -31,7 +31,7 @@ object ExportPdf {
// 计算图片的绘制位置(水平和垂直居中)
val imageX = (pageWidth - imageWidth) / 2f
val imageY = (pageHeight - imageHeight) / 2f
val imageY = (pageHeight - imageHeight) / imageYRate
// 绘制图片
canvas.drawBitmap(bitmap, imageX, imageY, null)
......@@ -43,13 +43,15 @@ object ExportPdf {
paint.textSize = 25f // 设置文本大小
paint.textAlign = Paint.Align.CENTER // 文本居中对齐
//文本距离图片间隔
val textVerticalMargin = 30f
// 计算顶部文本的绘制位置
val textTopY = imageY - marginVertical - paint.descent() // 图片上方50点
val textTopY = imageY - textVerticalMargin - paint.descent() // 图片上方50点
canvas.drawText(qrType, pageWidth / 2f, textTopY, paint)
// 计算底部文本的绘制位置
var currentY = imageY + imageHeight + marginVertical // 图片下方起始位置
var currentY = imageY + imageHeight + textVerticalMargin // 图片下方起始位置
val lineHeight = paint.textSize + 10f // 行高(文本大小 + 间距)
// 遍历字符串数组,逐行绘制
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment