我正在Android应用中创建pdf页面。
为了使用Kitkat(API 19)保持与旧设备的兼容性,我使用PrintedPdfDocument
和PdfDocument.Page
工作流程
而不是PdfRenderer
(需要API 21)
问题是,图像似乎是未压缩存储的。我的测试图像(大约2000x700像素)大约是3Mb。
据我所知,这只发生在Android 5上。后来的版本会产生较小的(压缩的)图像(大约200kb)。
不幸的是我找不到很多配置输出的方法。
我的打印属性如下所示:
PrintAttributes printAttributes = new PrintAttributes.Builder()
.setMediaSize(mediaSize)
.setColorMode(PrintAttributes.COLOR_MODE_COLOR)
.setMinMargins(PrintAttributes.Margins.NO_MARGINS)
.build();
所以除了设置为COLOR_MODE_MONOCHROME之外,我没有看到任何可以尝试的内容。
有没有人有任何想法?对我来说,唯一的方法就是寻找API级别,使用较新的{1}} API 21+和我原来的Kitkat解决方案。
有没有更好的方法而不是两种不同的工作流程?