Most visited

Recently visited

Added in API level 19

PdfDocument

public class PdfDocument
extends Object

java.lang.Object
   ↳ android.graphics.pdf.PdfDocument
Known Direct Subclasses


该类可以从原生Android内容生成PDF文档。 您创建一个新文档,然后为每个要添加的页面启动一个页面,将内容写入页面并完成页面。 完成所有页面后,将文档写入输出流并关闭文档。 文档关闭后,您不应该再使用它了。 请注意,页面是一个接一个地创建的,也就是说,您可以在任何给定时间只有一个您正在编写的页面。 这个类不是线程安全的。

这些API的典型用法如下所示:

 // create a new document
 PdfDocument document = new PdfDocument();

 // crate a page description
 PageInfo pageInfo = new PageInfo.Builder(new Rect(0, 0, 100, 100), 1).create();

 // start a page
 Page page = document.startPage(pageInfo);

 // draw something on the page
 View content = getContentView();
 content.draw(page.getCanvas());

 // finish the page
 document.finishPage(page);
 . . .
 // add more pages
 . . .
 // write the document content
 document.writeTo(getOutputStream());

 // close the document
 document.close();
 

Summary

Nested classes

class PdfDocument.Page

这个类代表一个PDF文档页面。

class PdfDocument.PageInfo

此类表示描述PDF的元数据PdfDocument.Page

Public constructors

PdfDocument()

创建一个新的实例。

Public methods

void close()

关闭此文件。

void finishPage(PdfDocument.Page page)

完成起始页面。

List<PdfDocument.PageInfo> getPages()

获取文档的页面。

PdfDocument.Page startPage(PdfDocument.PageInfo pageInfo)

使用提供的 PdfDocument.PageInfo开始页面。

void writeTo(OutputStream out)

将文档写入输出流。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Public constructors

PdfDocument

Added in API level 19
PdfDocument ()

创建一个新的实例。

Public methods

close

Added in API level 19
void close ()

关闭此文件。 在完成文档处理后应该调用此方法。 在这个调用之后,文档被认为是关闭的,并且它的任何方法都不应该被调用。

注意:如果 startPage(PageInfo)返回的页面没有通过调用 finishPage(Page)完成, 不要调用此方法。

finishPage

Added in API level 19
void finishPage (PdfDocument.Page page)

完成起始页面。 您应该始终完成上次启动的页面。

注意:请勿在close()之后调用此方法。 您不应该多次完成同一页面。

Parameters
page PdfDocument.Page: The page. Cannot be null.

也可以看看:

getPages

Added in API level 19
List<PdfDocument.PageInfo> getPages ()

获取文档的页面。

Returns
List<PdfDocument.PageInfo> The pages or an empty list.

startPage

Added in API level 19
PdfDocument.Page startPage (PdfDocument.PageInfo pageInfo)

使用提供的PdfDocument.PageInfo开始一个页面。 创建页面后,您可以通过调用getCanvas()在页面的画布上绘制任意内容。 完成绘制内容后,您应该致电finishPage(Page)完成该页面。 页面完成后,您不应再访问该页面或其画布。

注意:请勿在close()之后调用此方法。 如果通过调用finishPage(Page)未完成由此方法返回的最后一页,也请不要调用此方法。

Parameters
pageInfo PdfDocument.PageInfo: The page info. Cannot be null.
Returns
PdfDocument.Page A blank page.

也可以看看:

writeTo

Added in API level 19
void writeTo (OutputStream out)

将文档写入输出流。 您可以多次调用此方法。

注意:请勿在close()之后调用此方法。 如果startPage(PageInfo)返回的页面没有通过调用finishPage(Page)完成,也不要调用此方法。

Parameters
out OutputStream: The output stream. Cannot be null.
Throws
IOException If an error occurs while writing.

Protected methods

finalize

Added in API level 19
void finalize ()

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

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

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

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

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

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

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

Throws
Throwable

Hooray!