33

現在、JavaでXMLファイルを作成し、XSL/XSLTで変換してJSPページに表示しています。次に、その XML ファイルを取得して、同じ情報を PDF に表示する必要があります。ある種の XSL ファイルを使用してこれを行う方法はありますか?

iText Java-PDF ライブラリを見てきましたが、XML とスタイルシートで使用する方法が見つかりません。

どんな援助でも大歓迎です。前もって感謝します!

4

11 に答える 11

20

XSL Formatting オブジェクトを使用できます。これを行う方法に関するいくつかの良い記事を次に示します。

于 2008-10-17T15:15:41.563 に答える
7

ここでApache FOPプロジェクトを確認することもできます

于 2008-10-17T15:19:54.457 に答える
2

BIRTには、XML、DB、CSV などから PDF を定義できる Eclipse 用の GUI があります。

于 2008-10-17T15:16:32.717 に答える
1

xhtmlrendererプロジェクトを試してください。記事「空飛ぶ円盤と iText を使用して楽しみと利益のために PDF を生成する」を参照してください。

于 2008-10-19T20:09:56.603 に答える
1

変換として PDF の作成を行うことができる XSL-FO ライブラリーを参照することをお勧めします。リンクを探してみます。

于 2008-10-17T15:13:49.260 に答える
1

XSL-Fo を XML に適用し、Java トランスフォーマーで変換できます。

File xmlfile = new File(baseDir, xml);
File xsltfile = new File(baseDir, xsl);
File pdffile = new File(outDir, "ResultXMLPDF.pdf");

FopFactory fopFactory = FopFactory.newInstance();
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();

OutputStream out = new java.io.FileOutputStream(pdffile);
out = new java.io.BufferedOutputStream(out);

try
{
    Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
    // Setup XSLT
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));

    transformer.setParameter("versionParam", "1.0");

    Source src = new StreamSource(xmlfile);

    Result res = new SAXResult(fop.getDefaultHandler());

    transformer.transform(src, res);

} finally {
    out.close();
}

System.out.println("Success!");
于 2012-03-08T18:22:31.790 に答える
0

これには 2 つの方法があります。

  • まず、通常の PDF を作成できます。この PDF を読み返すと、元の XML ファイルの階層がわかりません。これは の で非常に詳しく説明され'Section 9.4.2 Parsing XML'てい'iText in Action : Edition 2'ます。

  • 次に、XML の階層とデータの両方を含むタグ付き PDF を作成できます。これにより、PDF ファイルを読み戻し、これから XML ファイルを作成できます (元の XML ファイルと完全に一致します)。この概念については、 にも詳しく説明され'15.2.3 Adding structure'てい'iText in Action : Edition 2'ます。

要件に基づいて、上記のアプローチのいずれかを使用できます。

于 2012-02-28T06:21:27.623 に答える
0

XML、CSS、XHTML などは、オープン標準の「生きたエコシステム」で構成されていますが、XSL-FOは孤立した標準です。

... 歴史的に XSL-FO と XSLT は双子の兄弟として作成されましたが、XSL-FO は独自の (Adobe) 標準に多くの DNA を集中させ、XSLT だけが「生きている標準」のままです... 現在は廃止されています。

厳密に言えば、XSL-FO は進化しない「放棄された方法」の一部であり、「生きているエコシステム」でレイアウトを表現する「新しい方法」である CSS を無視します。

Javaの問題ではない

XML または XHTMLでのCSS ページの使用に関するこの回答を参照してください。

于 2015-08-09T10:49:04.370 に答える
0

JasperReports を使用します。データベースまたは XML からデータを取得できます。多くの形式にエクスポートできます: pdf、excel、html など...

于 2008-10-17T16:06:14.817 に答える
0

最近では、編集可能なフィールドを備えた Adob​​e のデザイナーで静的 PDF を作成してから、対応する XDP XML ドキュメントを作成できます。

于 2009-10-26T19:15:15.323 に答える