【问题标题】:How to divide the webview content in multiple pages如何将webview内容划分为多个页面
【发布时间】: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 内容?

【问题讨论】:

    标签: java javascript android html canvas


    【解决方案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
    

    希望这会有所帮助!

    【讨论】:

    • 这有帮助吗?不是?有问题吗?告诉我。
    猜你喜欢
    • 2021-09-08
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多