使用Java / Scala创建文档的格式化PNG“页面”

时间:2011-02-23 00:31:07

标签: java image scala text typesetting

我在scala.xml树中有一个文档(这很容易转换为其他任何内容),我想把它转换成一系列PNG文件。

例如,文档可能如下所示:

<doc
  title="My Document"
  author="John Doe"
  created="1 July 1977"
  published="19 July 1799"
>
  <section heading="An Analysis of Multiparticles"> <!-- Section 1 -->
    <p>Paragraph one goes here</p> <!-- INTRODUCTION! -->
    <p>Paragraph two goes here</p>
  </section>
  <section heading="Conclusion of Multiparticles"> <!-- Section 2 -->
    <p>Paragraph one goes here</p> <!-- INTRODUCTION! -->
    <p>Paragraph two goes here</p>
  </section>

</doc>

然后,我想将该文档转换为类似于此的PNG,减去构成单词下的红线(我提供格式化规则,使用的字体等等): Image

并且,如果可能的话,更长的文档应该能够被“分页”到任意数量的PNG文件中,这些文件在达到500px的高度之后会流入下一个文件。

如果有一个现有的Java库/包可以做到这一点(或者是一对设法将它们全部组合在一起) - 很好!否则,我想知道在Scala(最好)或Java中写一些东西要做什么。

谢谢!

3 个答案:

答案 0 :(得分:1)

我建议改为PDF导出。其他人提到了iText:我已经开始将iText用于客户端(从Scala调用)。它似乎很好地介于PDFBox的低级别单调乏味和更高级别的Jasper Reports之间。

答案 1 :(得分:0)

我建议使用LaTeX,例如http://htmltolatex.sourceforge.net/。在那里,您可以设置合适的页面大小,转换为PDF,将PDF分解为单独的页面,并将页面转换为您想要的大小的PNG。

或者您真的需要将整个程序作为一个在JVM下运行的程序吗?

答案 2 :(得分:0)

您想使用iText库。这使您可以操作文档,生成PDF以及您想要使用的任何其他内容,非常高级,非常强大,非常Java。一旦你有PDF,你可以将其内容导出到你想要的任何格式,有很多PDF - &gt; internet上的PNG选项。

从头版:

  

开发人员可以使用iText:

* Serve PDF to a browser
* Generate dynamic documents from XML files or databases
* Use PDF's many interactive features
* Add bookmarks, page numbers, watermarks, etc.
* Split, concatenate, and manipulate PDF pages
* Automate filling out of PDF forms
* Add digital signatures to a PDF file