プログラミングJava プログラミング |
|
Q. | JavaVM+Tomcatの環境でXSLFormatterのJavaインタフェースを使って組版した時に、エラーが発生することがあります。 [No.2008022001] |
---|---|
A. |
XSL FormatterのJavaサンプルプログラムのsample5.javaでは以下のようになっていました。 TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transformer = transFactory.newTransformer(new StreamSource(fisXsl)); transformer.transform(new StreamSource(fisXml), new StreamResult(bosFo)); bisFo = new ByteArrayInputStream(bosFo.toByteArray()); axfo.render(bisFo, fosPdf, "@PDF"); toByteArray()メソッドは、FOデータをbyte配列でメモリ上に展開します。したがって、大きなサイズのFOデータを組版する場合にメモリ不足が発生し、予期せぬエラーが起こる場合があります。toByteArray()メソッドを使用せず、FOを一時ファイルに保存する方法に変更するとこの問題が解消される可能性があります。 XSL Formatter V4.2 改訂5版以降のsample5.javaはこの方法に変更されております。 |