現在、JavaでXMLファイルを作成し、XSL/XSLTで変換してJSPページに表示しています。次に、その XML ファイルを取得して、同じ情報を PDF に表示する必要があります。ある種の XSL ファイルを使用してこれを行う方法はありますか?
iText Java-PDF ライブラリを見てきましたが、XML とスタイルシートで使用する方法が見つかりません。
どんな援助でも大歓迎です。前もって感謝します!
XSL Formatting オブジェクトを使用できます。これを行う方法に関するいくつかの良い記事を次に示します。
ここでApache FOPプロジェクトを確認することもできます
BIRTには、XML、DB、CSV などから PDF を定義できる Eclipse 用の GUI があります。
xhtmlrendererプロジェクトを試してください。記事「空飛ぶ円盤と iText を使用して楽しみと利益のために PDF を生成する」を参照してください。
変換として PDF の作成を行うことができる XSL-FO ライブラリーを参照することをお勧めします。リンクを探してみます。
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!");
これには 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'
ます。
要件に基づいて、上記のアプローチのいずれかを使用できます。
XML、CSS、XHTML などは、オープン標準の「生きたエコシステム」で構成されていますが、XSL-FOは孤立した標準です。
... 歴史的に XSL-FO と XSLT は双子の兄弟として作成されましたが、XSL-FO は独自の (Adobe) 標準に多くの DNA を集中させ、XSLT だけが「生きている標準」のままです... 現在は廃止されています。
厳密に言えば、XSL-FO は進化しない「放棄された方法」の一部であり、「生きているエコシステム」でレイアウトを表現する「新しい方法」である CSS を無視します。
XML または XHTMLでのCSS ページの使用に関するこの回答を参照してください。
JasperReports を使用します。データベースまたは XML からデータを取得できます。多くの形式にエクスポートできます: pdf、excel、html など...
最近では、編集可能なフィールドを備えた Adobe のデザイナーで静的 PDF を作成してから、対応する XDP XML ドキュメントを作成できます。