Android 发票pdf文件(带签章)转bitmap图片

1. 背景

最近有一个需求,是一个自助发票打印的功能。顾客交易完成可以凭二维码自助开票发票打印。开票成功后会生成一个pdf文件(带签章)。

我们对接的打印机直接使用pdf文件进行打印会因为尺寸问题导致打印失败,所以将pdf文件转换成图片进行打印(主要是贪图这款打印机便宜,懂的都懂)。

这里就有一个问题,如果直接读取文件数据转换成图片,会把签章数据给搞丢,网上找了一下,没有找到解决方法,时间又有点紧迫,所以这里搞了些奇技淫巧:使用AndroidPdfViewer加载pdf文件,然后将控件的内容保存成bitmap,然后再将图片转化为黑色加深字体颜色进行打印。

2. 这里使用Java进行实现

下面为主要的实现代码

2.1 AndroidPdfViewer控件加载发票pdf文件
// invoucePdf为AndroidPdfViewer控件,com.github.barteksc.pdfviewer.PDFView
// 设置控件渲染内容保存到缓存中生成bitmap,下面这两个方法已经过时,有需要可以查看方法源码获取
invoicePdf.setDrawingCacheEnabled(true);
invoicePdf.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
// 这里可以直接获取图片, 这里图片的宽高跟控件的宽高一样
Bitmap invoiceBitmap = invoicePdf.getDrawingCache();

// https://github.com/barteksc/AndroidPdfViewer
invoicePdf.fromFile(file)
    .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值