创建整个webview Android的PDF

时间:2017-03-31 21:27:14

标签: android pdf webview

目前正在尝试为我的应用程序添加PDF导出功能。这包括填充HTML模板,将其放入WebView,然后使用适用的代码将该WebView的内容写入PDF:How to create PDF from webView, which is hidden? - 但是当生成PDF时,我只获得了该模板的可见区域WebView,因此屏幕外的信息被切断了。

这是我的代码,有没有办法可以从整个WebView中捕获数据?

public void createPDF() {
    PdfDocument doc = new PdfDocument();
    PdfDocument.PageInfo inf = new PdfDocument.PageInfo.Builder(A4_width, A4_height, 1).create();
    PdfDocument.Page page = doc.startPage(inf);
    Canvas c = page.getCanvas();
    int webWidth = htmlViewer.getWidth();
    float scale = A4_width / (float) webWidth;
    c.save();
    c.scale(scale, scale);

    htmlViewer.draw(c);
    c.restore();
    doc.finishPage(page);

    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
    String name = requestID + ".pdf";
    try {
        FileOutputStream fos = null;
        try {
            File file = (new File(dir, name));
            if(!file.exists()) {
                file.createNewFile();
            }
            fos = new FileOutputStream(file);
            doc.writeTo(fos);
            doc.close();
            Log.d(TAG, "PDF made");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (fos != null) { fos.close(); }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

}

0 个答案:

没有答案