我们可以在服务中使用PDFRenderer吗?

时间:2018-01-09 16:14:53

标签: android pdf

我正在编写aaa来控制专有打印机,我尝试使用'[^BLA]..|B([^C].|C[^N])|L([^E].|E[^D])|A([^T].|T[^H])' PrinterService发送的PDF文件转换为要发送到打印机的位图

我从这个example开始使用PDFRenderer。

我确定收到的PDF文件,但PDFRenderer非法填写空位图。

所以我想知道PrinterManager是否需要一些服务中没有的上下文。

1 个答案:

答案 0 :(得分:0)

序言

你说:

  

"我尝试了这项服务,阅读一个真正的PDF文件,结果是   相同"

所以您的问题是阅读Android有效PDF?所以分享那个代码。 您有工作示例示例转移到Service 已损坏

让我们继续

您的example包含一个示例(Android有效PDFhere

的可能性

下面的代码 工作在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了吗?