首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以在服务中使用PDFRenderer吗?

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

Stack Overflow用户
提问于 2018-01-09 16:14:53
回答 1查看 172关注 0票数 1

我正在编写一个PrinterService来控制专有打印机,并尝试使用PDFRendererPrinterManager发送的PDF文件转换为要发送到打印机的位图。

我从这个示例开始使用PDFRenderer。

我确信我收到的PDF文件,但mCurrentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT);零星地填充了一个空位图。

所以我想知道PDFRenderer是否需要一些在服务中不可用的上下文。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-09 17:26:07

前言

你说:

我尝试在服务中读取一个真正的PDF格式文件,结果是一样的

那么,您的问题是如何读取Android有效的PDF格式?所以分享这个密码吧。您有一个工作示例,通过将该示例传递给服务,You 破坏了

让我们继续

您的示例包含一个示例(Android有效PDF) 这里

可能性

下面的代码将在Service中工作(在我展示的活动代码中,您对context的担忧是没有根据的,没有使用context)。我猜,使用我的蜘蛛感知器,您在将示例代码转换为服务时有一个简单的错误(可能是在PDFRenderer {在API 21}中添加的)。?你没有崩溃,所以很可能没有NULL's ?)您需要调试您的代码,除非您共享它,否则我们无法帮助您。

细目

让我们来分析一下,这是使用PDFRenderer的基本方法。

代码语言:javascript
复制
 // 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业务,对吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48172376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档