9

私は、カスタマイズされたプリントを提供する Web ベースのツールに取り組んでいます。

現在、Java で XML 構造を構築し、カスタマイズされたXSL-FO と共にXMLmind XSL-FO コンバーターにフィードし、RTF ドキュメントを生成します。

これは単純なレイアウトでは問題なく機能しますが、より詳細な制御が必要な領域や、やりたいことがまったくできない領域がいくつかあります。F.ex: ヘッダー、フッター (ページ番号など)、列の表、最初のページに別の列の設定または異なるページ番号情報があるなど。

XMLmind や、データから RTF を取得する方法、つまり Java-> XML、XML+XSL-> RTF に代わるより良い方法を知っている人はいますか? (私たちにとって唯一の実際的な制限は JVM です。)

4

5 に答える 5

8

jRTFと呼ばれる新しいライブラリを見ることができます。新しい RTF ドキュメントを作成し、RTF テンプレートに入力することができます。

于 2010-07-10T06:26:15.547 に答える
4

iTextライブラリをご覧になりましたか? RTF も生成できますが、主に PDF ジェネレーターとして宣伝されています。個人的に使用する理由はありませんでしたが、全体的な印象としては、良いものであり、インターフェースは包括的で抽象的に操作しやすいように見えます. それが既存のデータ モデルにうまく適合するかどうかは、別の問題です。

于 2009-01-08T13:06:14.063 に答える
2

いくらかの費用を支払う余裕がある場合は、Java および .NET 用の Word および RTF ドキュメントを作成するための専門的なライブラリであるAspose.Wordsを使用できます。

于 2009-01-08T14:00:35.717 に答える
0

iTextは RTF をサポートしています。

于 2009-01-08T13:03:11.013 に答える
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);
        }
    }
}
于 2012-07-03T21:48:14.627 に答える