我使用基于网络的工具,我们提供自定义打印。
目前,我们使用Java构建XML结构,将其提供给XMLmind XSL-FO Converter以及自定义的XSL-FO,然后生成RTF文档。
这在简单的布局上工作得很好,但是在某些问题上我需要更好的控制,或者我根本不能做我想做的事情。 F.ex:页眉,页脚(例如,页码)中的表格,列,在第一页上具有单独的列设置或不同的页码信息等。
你们中的任何人都知道更好的选择,无论是XMLmind还是我们从数据到RTF的方式,即Java-> XML,XML + XSL-> RTF? (我们唯一的实际限制是JVM。)
答案 0 :(得分:8)
您可以查看名为jRTF的新库。它允许您创建新的RTF文档并填充RTF模板。
答案 1 :(得分:4)
你看过iText图书馆了吗?它主要被吹捧为PDF生成器,但它可以also generate RTF。我没有理由亲自使用它,但我得到的一般感觉是它很好,界面看起来很全面,易于抽象地工作。它是否适合您现有的数据模型是另一个问题。
答案 2 :(得分:2)
如果你能负担得起花钱,你可以使用Aspose.Words,一个专业的库来为Java和.NET创建Word和RTF文档。
答案 3 :(得分:1)
iText支持RTF。
答案 4 :(得分:0)
import com.lowagie.text.*;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.text.html.simpleparser.StyleSheet;
import com.lowagie.text.rtf.*;
import java.io.*;
import java.util.ArrayList;
public class HTMLtoRTF {
public static void main(String[] args) throws DocumentException {
Document document = new Document();
try {
Reader htmlreader = new BufferedReader((new InputStreamReader((new FileInputStream("C:\\Users\\asrikantan\\Desktop\\sample.htm")))));
RtfWriter2 rtfWriter = RtfWriter2.getInstance(document, new FileOutputStream(("C:\\Users\\asrikantan\\Desktop\\sample12.rtf")));
document.open();
document.add(new Paragraph("Testing simple paragraph addition."));
//ByteArrayOutputStream out = new ByteArrayOutputStream();
StyleSheet styles = new StyleSheet();
styles.loadTagStyle("body", "font", "Bitstream Vera Sans");
ArrayList htmlParser = HTMLWorker.parseToList(htmlreader, styles);
//fetch HTML line by line
for (int htmlDatacntr = 0; htmlDatacntr < htmlParser.size(); htmlDatacntr++) {
Element htmlDataElement = (Element) htmlParser.get(htmlDatacntr);
document.add((htmlDataElement));
}
htmlreader.close();
document.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println(e);
}
}
}