我使用Android(link)中的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();
答案 0 :(得分:3)
如果要创建多个页面,只需为要在文档中创建的每个页面调用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();
答案 1 :(得分:1)
过去几天我遇到了同样的问题,所以我从Rakesh Gopathi那里找到了这个https://github.com/balderdashy/sails/issues/2414,它完美无缺。我真的推荐任何使用本地answer类的人来检查它。