我正在编写一个PrinterService来控制专有打印机,并尝试使用PDFRenderer将PrinterManager发送的PDF文件转换为要发送到打印机的位图。
我从这个示例开始使用PDFRenderer。
我确信我收到的PDF文件,但mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT);零星地填充了一个空位图。
所以我想知道PDFRenderer是否需要一些在服务中不可用的上下文。
发布于 2018-01-09 17:26:07
前言
你说:
我尝试在服务中读取一个真正的PDF格式文件,结果是一样的
那么,您的问题是如何读取Android有效的PDF格式?所以分享这个密码吧。您有一个工作示例,通过将该示例传递给服务,You 破坏了。
让我们继续
可能性
下面的代码将在Service中工作(在我展示的活动代码中,您对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业务,对吗?
https://stackoverflow.com/questions/48172376
复制相似问题