Most visited

Recently visited

Added in API level 21

PdfRenderer

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();
 

Print preview and print output

如果您正在使用此类来栅格化PDF以进行打印或显示打印预览,建议您遵守以下合同,以便在查看预览和打印时提供一致的用户体验,即用户看到的预览是与打印输出一样。

也可以看看:

Summary

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

Public constructors

PdfRenderer

Added in API level 21
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.

Public methods

close

Added in API level 21
void close ()

关闭此渲染器。 调用此方法后,您不应该使用此实例。

getPageCount

Added in API level 21
int getPageCount ()

获取文档中的页数。

Returns
int The page count.

openPage

Added in API level 21
PdfRenderer.Page openPage (int index)

打开一个页面进行渲染。

Parameters
index int: The page index.
Returns
PdfRenderer.Page A page that can be rendered.

也可以看看:

shouldScaleForPrinting

Added in API level 21
boolean shouldScaleForPrinting ()

获取文档是否更喜欢缩放打印。 如果文档被渲染用于打印并且目标介质尺寸与页面尺寸不同,则应该采用此信息帐户。

Returns
boolean If to scale the document.

Protected methods

finalize

Added in API level 21
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法以处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

Objectfinalize方法Object执行特殊操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对某个对象调用了 finalize方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机从不会多次调用 finalize方法。

finalize方法抛出的任何异常 finalize导致终止此对象的终止,但会被忽略。

Throws
Throwable

Hooray!