Android从webview创建包含多个页面的pdf文档

use*_*901 8 pdf android document webview multipage

我使用Android的PdfDocument框架(链接)从我的webview内容创建一个pdf文档.pdf创建得很好,但它只是一页文档.当webview内容很大时,我需要创建一个多页文档.我只需要在页面中分割WEBVIEW内容.我怎样才能实现这一目标?我不想使用iText或任何第三方库.

需要帮助.提前致谢.

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

// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create();

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

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

// finish the page
document.finishPage(page);

FileOutputStream fos;
try {
    fos = new FileOutputStream(fileNameWithPath, false);
    // write the document content
    document.writeTo(fos);

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

// close the document
document.close();
Run Code Online (Sandbox Code Playgroud)

rto*_*ome 7

如果您想创建多个页面,那么只需为您想要在文档中创建的每个页面调用 startPage() 和 finishPage()。
像这样的事情:

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

// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create();

// start 1st page
PdfDocument.Page page = document.startPage(pageInfo);
// draw something on the page
View content = myWebview;
content.draw(page.getCanvas());
// finish 1st page
document.finishPage(page);

// start 2nd page
PdfDocument.Page page = document.startPage(pageInfo);
// draw something on the page
View content = someOtherWebview;
content.draw(page.getCanvas());
// finish 2nd page
document.finishPage(page);

// and so on...

FileOutputStream fos;
try {
    fos = new FileOutputStream(fileNameWithPath, false);
    // write the document content
    document.writeTo(fos);

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

// close the document
document.close();
Run Code Online (Sandbox Code Playgroud)