在Android下不依赖第三方库生成PDF
最近在做Android下的打印功能,需要动态生成打印内容进行打印。
官方文档https://developer.android.com/training/printing/custom-docs.html中提到了如何通过Android 4.4开始系统自带打印服务实现打印自定义内容,自定义的内容必须是PDF文档,其中用到了PrintedPdfDocument这个类来生成PDF。
那么,理论上,单独使用PrintedPdfDocument类,应该也是可以生成出PDF文档的。
分析过程
PrintedPdfDocument
首先来看PrintedPdfDocument的构造函数
public PrintedPdfDocument(@NonNull Context context, @NonNull PrintAttributes attributes)
有两个参数,Context很好获得,然后就是PrintAttributes,这个对象说明打印使用的纸张、打印份数等参数。使用Android打印服务的时候,这个PrintAttributes对象是打印服务在用户选择了打印参数后、通过回调函数直接传入的,而现在需要自己构造一个PrintAttributes对象。
PrintAttributes
PrintAttributes有5个用来表示打印参数的成员: