【问题标题】:Html to PDF using PdfDocument使用 PdfDocument 将 HTML 转换为 PDF
【发布时间】:2017-04-10 22:17:31
【问题描述】:

我正在尝试使用 PdfDocument 从 HTML 字符串生成 PDF:

https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html

字符串示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
            <title>Example</title>
        </head>
        <body>
            <h1>Hello</h1>
        </body>
    </html>

我知道如何从 WebView 生成 PDF 文件,而不是从字符串 HTML。我该怎么做? 我没有在 stackoverflow.com 或 Google 中找到如何使用本机类 PDFDOCUMENT 进行此操作

【问题讨论】:

  • 通过loadData()将HTML加载到WebView中。
  • 感谢回复,但我不想上传网页视图,我需要在 pdf 中打印对象 java...
  • 不,我需要使用 PdfDocument 本机,而不是 itext

标签: android


【解决方案1】:

这个class 可以满足您的需求。

但要编译,它必须在包“.../java/android/print/”中

这是一个简单的代码示例:

PdfConverter converter = PdfConverter.getInstance();
File file = new File(Environment.getExternalStorageDirectory().toString(), "file.pdf");
String htmlString = "<html><body><p>WHITE (default)</p></body></html>";
converter.convert(getContext(), htmlString, file);
// By now the pdf has been printed in the file.

【讨论】:

    【解决方案2】:

    react-native-html-to-pdf 效果很好,并且具有 iText 依赖项。

    https://github.com/christopherdro/react-native-html-to-pdf

    • 渲染 SVG &lt;svg&gt;(非常容易在 HTML 文档中重用 svg 代码 from Google Material Icons
    • 使用 base64 或本地文件渲染 &lt;img /&gt;(确保关闭 img 标签)
    • CSS 样式效果很好。
    • 您可以从 HTML 中控制分页符。

      &lt;p style="page-break-before: always;" /&gt;

    我将它分叉并为 Android 添加了页面大小和方向选项。我打算对 iOS 做同样的事情,但它目前有宽度和高度选项可以完成同样的事情。

    这是一个跨平台的 Android 和 iOS React Native 库。

    如果您只需要 Java,请查看 Android 目录。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 2017-12-19
    • 2014-03-19
    • 2022-03-07
    • 2021-09-21
    相关资源
    最近更新 更多