【问题标题】:Convert HTML String to PDF with native PrintedPdfDocument使用本机 PrintedPdfDocument 将 HTML 字符串转换为 PDF
【发布时间】:2015-12-11 15:58:31
【问题描述】:

如何仅使用本机 PrintedPdfDocumentAPI 19 或更高版本)将 HTML 字符串(即时创建)转换为 PDF?我正在寻找不需要添加任何外部库的解决方案。

【问题讨论】:

  • 我不知道在不使用库的情况下从 HTML 获取 PDF 的任何直接方法。虽然 Android 4.4+ 能够通过WebView 打印 HTML,但您无法直接获取可用作打印内容的 PDF。
  • WebView 不能解决我的问题,因为即使我可以轻松地从 WebView 内容生成 PDF,我也只能在屏幕上明确显示后才能做到。如果添加后 webView.setVisibility(View.GONE);该应用程序可以工作,我可以在我的情况下使用它。但是添加 GONE 会导致无法捕获任何内容。我不确定你是否能理解我的意思

标签: android android-pdf-api


【解决方案1】:

如果 HTML 非常有限,您可以尝试使用TextView 和一些 HTML-to-Spanned 转换器(例如,Html.fromHtml())。

或者,正如我在 cmets 中所指出的,您可以使用 WebView,尽管您指出它不符合您的业务要求,而且我不确定您是否可以访问 PDF。

否则,您唯一的无库选项是将 HTML 发送到服务器,该服务器可以返回 PDF。

【讨论】:

  • 请阅读我上面的评论。我需要一个可以在后台生成 PDF(或例如可见性消失)的解决方案
  • @Annabelle:“请阅读我上面的评论”——请阅读我上面的回答,特别是“尽管您表示它不符合您的业务要求,我不确定您是否可以访问PDF 无论如何”。至少使用TextView,您应该能够创建一个不附加到视图层次结构的视图,但是您可以手动将measure()layout() 设置为所需的大小,然后将其与PdfDocument 一起使用。否则,您的选择是库、服务器或编写自己的 HTML 解析器并实现自己的低级 Canvas 绘图代码。
猜你喜欢
  • 2023-03-13
  • 2017-12-25
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多