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();
Nested classes |
|
---|---|
class |
PdfDocument.Page 这个类代表一个PDF文档页面。 |
class |
PdfDocument.PageInfo 此类表示描述PDF的元数据 |
Public constructors |
|
---|---|
PdfDocument() 创建一个新的实例。 |
Public methods |
|
---|---|
void |
close() 关闭此文件。 |
void |
finishPage(PdfDocument.Page page) 完成起始页面。 |
List<PdfDocument.PageInfo> |
getPages() 获取文档的页面。 |
PdfDocument.Page |
startPage(PdfDocument.PageInfo pageInfo) 使用提供的 |
void |
writeTo(OutputStream out) 将文档写入输出流。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void close ()
关闭此文件。 在完成文档处理后应该调用此方法。 在这个调用之后,文档被认为是关闭的,并且它的任何方法都不应该被调用。
注意:如果 startPage(PageInfo)
返回的页面没有通过调用 finishPage(Page)
完成, 请不要调用此方法。
void finishPage (PdfDocument.Page page)
完成起始页面。 您应该始终完成上次启动的页面。
注意:请勿在close()
之后调用此方法。 您不应该多次完成同一页面。
Parameters | |
---|---|
page |
PdfDocument.Page : The page. Cannot be null. |
也可以看看:
List<PdfDocument.PageInfo> getPages ()
获取文档的页面。
Returns | |
---|---|
List<PdfDocument.PageInfo> |
The pages or an empty list. |
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. |
也可以看看:
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. |
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 |