我使用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();
如果要创建多个页面,则只需为要在文档中创建的每个页面调用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();
我在过去的几天里遇到了同样的问题,所以我从Rakesh Gopathi那里得到了这个答案 ,它完美无缺。 我真的推荐任何使用本机PdfDocument类的人来检查它。