-1

XMLファイルのデータと定義からPDFレポートを生成するためのAPI/ソリューションはありますか?たとえば、XML定義/データは次のようになります。

<pdf>
    <paragraph font="Arial">Title of report</paragraph>
</pdf>

HTMLをPDFに変換することも私が感じる良い解決策になるでしょう。

現在、iTextAPIを使用してJavaコードを記述しています。技術者以外の人が編集および変更できるように、コードを外部化したいと思います。

4

5 に答える 5

10

ApacheFOPをご覧ください。XSLTスタイルシートを使用して、XML(またはXHTML)をXSL-FOに変換します。次に、FOPを使用してXSL-FOドキュメントを読み取り、PDFドキュメントにフォーマットします(Hello World with FOPを参照)。

Apache FOPは、大きなドキュメント(200ページのPDFなど)に大量のメモリを使用する可能性があり、JVMメモリ設定の調整が必要になる場合があります。

于 2009-11-22T00:43:51.967 に答える
4

iTextには、XML(およびHTMLだと思います)からPDFを生成する機能があります。これがDTDですが、整理するのが難しいことがわかりました。それを除けば、何がサポートされているかについての良いドキュメントは見つかりませんでした。私のアプローチは、SAXiTextHandlerElementTagsのソースを調べて、何が許容できるかを理解することでした。理想的ではありませんが、それはかなり簡単です。

<itext orientation="portrait" pagesize="LETTER" top="36" bottom="36" left="36" right="36" title="My Example" subject="My Subject" author="Me">
<paragraph size="8" >This is an example</paragraph>
</itext>

...

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.xml.SAXiTextHandler;

...

String inXml = ""; //use xml above as an example
ByteArrayOutputStream temp = new ByteArrayOutputStream();
Document document = new Document();
PdfWriter writer = null;
try
{
    writer = PdfWriter.getInstance(document, temp);
    SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    parser.parse(new ByteArrayInputStream(inXml), new SAXiTextHandler(document));
}
catch (Exception e)
{
    // instead, catch the proper exception and do something meaningful
    e.printStackTrace();
}
finally
{
    if (writer != null)
    {
        try
        {
            writer.close();
        }
        catch (Exception ignore)
        {
            // ignore
        }
    } // if
}

//temp holds the PDF
于 2009-11-22T01:27:26.203 に答える
3

JasperReportsを見てください。iTextを使用して私が思うファイルをエクスポートします。そのIDEはシンプルで、プログラマー以外でも使用できます。

編集:言及するのを忘れました。アプリケーションでJasperReportsエンジンを直接使用するか、iReport "DesignerforJasperReports"を使用できます。

于 2009-11-22T09:45:27.297 に答える
1

十分にサポートされている XML 形式を使用すると、他のユーザーの作業を活用できるようになります。

十分にサポートされている XML 形式は DocBook XML - http://www.docbook.org/ - であり、これ - http://sagehill.net/docbookxsl/index.html - は XML -> PDF を実行するための優れたリソースのようです。 Docbook スタイル シートやその他の形式で XSLT を使用する。

このアプローチにより、任意の XSLT プロセッサと任意の XSL/FO プロセッサを使用して結果を得ることができます。これにより、スクリプタビリティが容易になるだけでなく、必要に応じて実装を自由に切り替えることができます。特に、古い Apache FOP 実装は、結果の PDF が「大きすぎる」とひどく劣化します。

于 2009-11-22T11:28:43.820 に答える
0

Princeは最高のツールの1つです。スタイルに CSS を使用するため、表示からデータを分離するその方法を気に入っている場合 (ユーザーもそれを行うことができます)、非常に適している可能性があります。(ブラウザーが CSS を介して提供する表示の制御は、比較すると原始的です。)

于 2009-11-22T01:13:39.430 に答える