java - 如何将webview内容划分为多个页面

标签 java javascript android html canvas

我必须使用 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 内容?

最佳答案

我正在创建一个 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

希望这有帮助!

关于java - 如何将webview内容划分为多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718829/

相关文章:

java - 管辖权政策文件未由受信任的签名者签名......?

javascript - 如何在绝对元素下移动 sibling ?

Android设计库FAB无阴影

java - java中的十进制输入edittext

android - Google登录对话框关闭android studio后屏幕闪烁

java - 如何在 Java 中将 Map<String, Set<String>> 转换为 Map<String, String[]>

Opensolaris 2009.6 上的 javac 异常

java - 为什么 setImageResource 方法不起作用?

javascript - 通过子域重定向

javascript - 无法使用 javascript 对 div 元素进行排序