如何将webview内容划分为多个页面
Posted
技术标签:
【中文标题】如何将webview内容划分为多个页面【英文标题】:How to divide the webview content in multiple pages 【发布时间】:2015-06-25 11:07:16 【问题描述】:我必须在 android 上使用 PdfDocument 从我的 webView 创建 PDF。 https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html pdf创建得很好,但它只有一页文档。
// create a new document
PdfDocument document = new PdfDocument();
// create a page description
PageInfo pageInfo = new PageInfo.Builder(width,
height, 1).create();
// start 1st page
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
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 out;
try
out = new FileOutputStream(fileNameWithPath, false);
// write the document content
document.writeTo(out);
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
// close the document
document.close();
如何在页面中划分 webview 内容?
【问题讨论】:
【参考方案1】:我正在创建一个像书一样读取文件的 android 应用程序,但我没有将它切碎并一次显示一页,而是隐藏了除一个部分之外的所有部分,然后只显示整个文件。
因此,也许您可以使用类似的技术,例如: 1. 你可以用 css 隐藏所有的 webview 2. 显示一个部分 3. 写信给PDF 4. 隐藏上一节 5. 显示下一节等。
在 webview 读取的 text.html 源文件中,将每个页面包装在 div 标签中,如下所示:
<div id="page1" style="display:hidden;">
Page 1 text
</div>
<div id="page2" style="display:hidden;">
Page 2 text
</div>
<div id="page3" style="display:hidden;">
Page 3 text
</div>
在你的 Java 中:
//First you have to enable javascript
webView.getSettings().setJavaScriptEnabled(true);
//Then run this javascript which will find the first page and reveal it
webView.loadUrl("javascript:document.getElementById('page"+ 1 +"').style.display ='block';");
//reload Webview
webView.loadUrl("C:\Desktop\text.html");
//write to PDF
//repeat for page 2
希望这会有所帮助!
【讨论】:
这有帮助吗?不是?有问题吗?告诉我。以上是关于如何将webview内容划分为多个页面的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WebView 中仅加载 .html 页面并在 iOS 的 Safari 中加载所有 www 页面?