public final class PdfRenderer
extends Object
implements AutoCloseable
java.lang.Object | |
↳ | android.graphics.pdf.PdfRenderer |
这个类使得能够呈现PDF文档。 这个类不是线程安全的。
如果您想渲染PDF,您可以创建一个渲染器,并且为每个要渲染的页面打开页面,渲染并关闭页面。 完成渲染后,关闭渲染器。 渲染器关闭后,不应再使用。 请注意,页面是一个接一个呈现的,也就是说,您可以在任何给定的时间只打开一个页面。
这些API呈现PDF的典型用法如下所示:
// create a new renderer PdfRenderer renderer = new PdfRenderer(getSeekableFileDescriptor()); // let us just render all pages final int pageCount = renderer.getPageCount(); for (int i = 0; i < pageCount; i++) { Page page = renderer.openPage(i); // say we render for showing on the screen page.render(mBitmap, null, null, Page.RENDER_MODE_FOR_DISPLAY); // do stuff with the bitmap // close the page page.close(); } // close the renderer renderer.close();
如果您正在使用此类来栅格化PDF以进行打印或显示打印预览,建议您遵守以下合同,以便在查看预览和打印时提供一致的用户体验,即用户看到的预览是与打印输出一样。
shouldScaleForPrinting()
. PrintAttributes
as the application is responsible to render it such that the margins are respected. 也可以看看:
Nested classes |
|
---|---|
class |
PdfRenderer.Page 此类表示用于渲染的PDF文档页面。 |
Public constructors |
|
---|---|
PdfRenderer(ParcelFileDescriptor input) 创建一个新的实例。 |
Public methods |
|
---|---|
void |
close() 关闭此渲染器。 |
int |
getPageCount() 获取文档中的页数。 |
PdfRenderer.Page |
openPage(int index) 打开一个页面进行渲染。 |
boolean |
shouldScaleForPrinting() 获取文档是否更喜欢缩放打印。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.lang.AutoCloseable
|
PdfRenderer (ParcelFileDescriptor input)
创建一个新的实例。
注意:提供的文件描述符必须是 可搜索的 ,即它的数据是随机访问的,例如指向一个文件。
注意:此类取得了传入的文件描述符的所有权,并负责在呈现器关闭时关闭它。
如果文件来自不受信任的源,建议在单独的独立进程中运行渲染器,并使用最小的权限来限制安全漏洞的影响。
Parameters | |
---|---|
input |
ParcelFileDescriptor : Seekable file descriptor to read from. |
Throws | |
---|---|
IOException |
If an error occurs while reading the file. |
SecurityException |
If the file requires a password or the security scheme is not supported. |
PdfRenderer.Page openPage (int index)
打开一个页面进行渲染。
Parameters | |
---|---|
index |
int : The page index. |
Returns | |
---|---|
PdfRenderer.Page |
A page that can be rendered. |
也可以看看:
boolean shouldScaleForPrinting ()
获取文档是否更喜欢缩放打印。 如果文档被渲染用于打印并且目标介质尺寸与页面尺寸不同,则应该采用此信息帐户。
Returns | |
---|---|
boolean |
If to scale the document. |
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize
方法以处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize
方法可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类Object
的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用了 finalize
方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定的对象,Java虚拟机从不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致终止此对象的终止,但会被忽略。
Throws | |
---|---|
Throwable |