我在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,减去构成单词下的红线(我提供格式化规则,使用的字体等等):
并且,如果可能的话,更长的文档应该能够被“分页”到任意数量的PNG文件中,这些文件在达到500px的高度之后会流入下一个文件。
如果有一个现有的Java库/包可以做到这一点(或者是一对设法将它们全部组合在一起) - 很好!否则,我想知道在Scala(最好)或Java中写一些东西要做什么。
谢谢!
答案 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