我正在编写aaa
来控制专有打印机,我尝试使用'[^BLA]..|B([^C].|C[^N])|L([^E].|E[^D])|A([^T].|T[^H])'
将PrinterService
发送的PDF文件转换为要发送到打印机的位图
我从这个example开始使用PDFRenderer。
我确定收到的PDF文件,但PDFRenderer
非法填写空位图。
所以我想知道PrinterManager
是否需要一些服务中没有的上下文。
答案 0 :(得分:0)
你说:
"我尝试了这项服务,阅读一个真正的PDF文件,结果是 相同"
所以您的问题是阅读Android
有效PDF?所以分享那个代码。
您有工作示例,将示例转移到Service, 已损坏 。
您的example包含一个示例(Android
有效PDF
)here。
下面的代码 将工作在Service
(对于有效代码I' m,您担心context
显示无根据,未使用context
)。我猜测使用我的蜘蛛感官你将示例代码转移到服务中有一个简单的错误(可能在PDFRenderer {在API级别21中添加}。崩溃所以可能没有NULL's
?)。您需要调试您的代码,除非您分享,否则我们无法帮助您。
让我们分解,这是使用PDFRenderer的基本方法。
// create a new renderer
//PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor());
PdfRenderer.Page mCurrentPage = renderer.openPage(0);
int h = mCurrentPage.getHeight();
Log.e("debug PDF render","height:"+h);
int w = mCurrentPage.getWidth();
Log.e("debug PDF render","width:"+w);
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Rect rect = new Rect(0, 0, w, h);
mCurrentPage.render(bitmap, rect, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT);
mCurrentPage.close();
我们在商家中获得填充 bitmap
了吗?