【问题标题】:How to export a PDF from WebView where I can select text, inside the new PDF如何从可以在新 PDF 中选择文本的 WebView 导出 PDF
【发布时间】:2019-05-16 23:21:46
【问题描述】:

我正在尝试将 WebView 的文本内容转换为 PDF。使用下面的代码。

PdfDocument.Page page = document.StartPage(new PdfDocument.PageInfo.Builder(webpage.Width, webpage.Height, 1).Create());
webpage.Draw(page.Canvas);

PDF 已正确生成,但我无法从该 PDF 中选择文本。它类似于 WebView 内容,但转换为图像。

但是如果我尝试从打印菜单中打印相同的 WebView 并将其保存为 PDF 文本选择正在工作并且 pdf 的大小更小。

那么如何从 WebView 创建 PDF,其中文本也是可选的。

例如。文本选择。

【问题讨论】:

  • 我认为需要更多有关情况的信息和背景
  • 其实Webview是转换成图片在pdf上绘制的。我希望 Webview 文本内容写在 pdf 上而不是图像上,而是作为文本。
  • 在这里查看答案:stackoverflow.com/questions/9579772/…

标签: java android pdf webview


【解决方案1】:

您所做的是将网页作为图像打印到 PDF 画布上 - 这就是尺寸较大的原因,您无法选择文本。因为文本不是作为文本对象出现在那里,而是作为图像出现。 这样做的原因是您将 web 视图(而不是网页)绘制到 PDF 画布上。这就像将视图本身作为位图输出到 PDF。

您可能想要做的是使用 XHTML 到 PDF 呈现库,如 iText 或 Flying Saucer,将 XHTML 网页(而不是 web 视图!)正确呈现为 PDF。

【讨论】:

    【解决方案2】:

    你可以为此使用iText库,在gradle中添加这个依赖

    编译'com.itextpdf:itextg:5.5.10'

    现在像这样将 webview 的文本转换为 pdf

    try {
                File mFolder = new File(getExternalFilesDir(null) + "/sample");
                File imgFile = new File(mFolder.getAbsolutePath() + "/Test.pdf");
    
                if (!mFolder.exists()) {
                    mFolder.mkdir();
                }
                if (!imgFile.exists()) {
                    imgFile.createNewFile();
                }
    
                String webviewText = "<html><body>Your  webview's text content </body></html>";
                OutputStream file = new FileOutputStream(imgFile);
    
                Document document = new Document();
                PdfWriter.getInstance(document, file);
                document.open();
                HTMLWorker htmlWorker = new HTMLWorker(document);
                htmlWorker.parse(new StringReader(webviewText));
                document.close();
                file.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多