【问题标题】:Java utility for printing PDF用于打印 PDF 的 Java 实用程序
【发布时间】:2015-05-13 21:23:39
【问题描述】:

我正在制作一个实用程序,以语法方式制作文档并打印它。

我要道歉,我不擅长制定这个,可能会有一些混乱,请和我一起努力:(

这个项目主要是为了制作一个用户友好的实用程序,用于在您的程序中创建文档并打印它,同时也是一种学习体验。

它使用我将转换为 MarkDown 的对象,因为它易于使用,我将它转换为 HTML,因为它将用于 Web 表单。

当我希望程序将我现在创建的这个 HTML 文件打印为 PDF 时,就会出现问题。

我已经搜索了很长时间的解决方案,但还没有找到结果,我发现的只是过时、充满错误或无法满足我的需求。

我尝试过 iText,因为这似乎是最受欢迎的选择,但如上所述,我发现的所有内容都已过时且不再有用,主要是因为他们所说的类不再存在。

我真正想要的是最终独立于其他库,所以这是我的最终目标,但现在我想要一种将本地存储的 HTML 文件打印为 PDF 的方法,它需要与 CSS 兼容。

如果有人能指出我学习如何将 MarkDown 转换为 HTML 并将 HTML 打印为 PDF 的方向,我会非常高兴。

编辑 1: Stephan C pointet 这个问题太宽泛,很难回答,我会尽力解释:

我想要的主要是使用本地存储的 HTML 文件和 CSS 打印 PDF 文件。

可选的解决方案是我很想学习如何自己编写代码而不是实现库,例如 markdown4j 和 iText。是的,我知道要承担很多工作,但正如我所说,这对我来说是一次学习经历。

【问题讨论】:

  • 我仍然会使用 iText 解决方案。它具有您需要的所有功能。不知道你觉得哪个部分难以实现......
  • 好的,这是一个严肃的评论。你的问题太宽泛,太不清楚/矛盾。您以各种方式询问如何“打印” PDF、将 HTML 转换为 PDF、将 HTML“存储”为 PDF(这没有任何意义)。然后你说你想要图书馆的“独立性”(这没有意义)。然后你问关于将 Markdown 转换为 HTML 的问题。这里有太多相互矛盾的子问题,无法给出正确答案。如果您希望人们认真对待您的问题,则需要解决这些问题。
  • 嗨,西蒙,您是否尝试过这里描述的所有库:stackoverflow.com/questions/6118635/…?什么对他们不起作用? Flying Saucer 项目似乎将 XHTML 转换为 PDF 输出。
  • 好吧,长话短说,我想将本地存储的 HTML 文档打印为具有 CSS 兼容性的 PDF,其余部分是可选的,感谢您指出这一点,我将尝试重新提出我的问题。

标签: java html pdf markdown


【解决方案1】:

看看Converting HTML files to PDF。它具有与 iText 一起使用的示例代码以及其他建议。如果您在此处遇到建议的帖子细节问题。修改您的原始问题或提出新问题。

【讨论】:

    【解决方案2】:

    直接从 HTML 打印到 pdf 也可能比使用 iText 或其他库更糟糕。
    我刚刚制作了一些 iText PDF,不使用低级 pdf 类,而是从中编译 PDF 表单。
    如果您需要填写 PDF 表格,您可以使用 iText,如下所示。

    1. 使您的 html 表单成为 PDF 表单。 (acrobat 或其他免费软件)
    2. 使用 iText 类 AcroFields 获取 PDF 表单字段(您可以通过名称获取它们,也可以使用 AcroFields.getFields() 返回字段映射;
    3. 使用 AcroFields.setFields() 或 .setField() 编译所需信息;
    4. PdfReader 类允许您打开现有的 PDF(模板)
    5. PdfStamper 允许您将流写入另一个流(结果)
      添加图像和其他二进制文件真的很容易!

    通过这种方式,您可以快速完成,并且布局也将快速且良好。 限制是您需要与所需数据一样多的模板。 (如果您的字段在某些情况下在其他情况下很多,则需要两次模板)。 对于静态数量的字段是一个很好的解决方案。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      相关资源
      最近更新 更多