4

この Java コードで JasperReports と DynamicReports を使用して、utf-8 文字を含む PDF 形式のレポートを作成しています。問題は、生成された PDF ファイルに utf-8 文字がまったく含まれていないことです。 "。OutputStream を使用して utf-8 ファイルを作成するときに注意すべきことはありますか?

    public void toPdf(String path){
        OutputStream outHtml;
        try {
            outHtml = new FileOutputStream(path);

            jasperBuilder.toPdf(outHtml);
        } catch (Exception e1) {
            logger.error("failed to create PDF", e1);
        }
}

これは、XLS および HTML ファイルを作成する際にそのような問題が発生しないことに注意してください。

私がトレースしたコード行がたくさんありjasperBuilder.toPdf(outHtml);、それらの行のどこにもutf-8文字が削除されていないことに注意してください。だから私は悪魔がいると思いますoutHtml = new FileOutputStream(path);

4

2 に答える 2

2

AFileOutputStreamは、それに書き込まれる「もの」に完全に依存しません。バイトを書き込むだけです。文字が削除またはマングルされている場合、これは、ストリームに書き込まれるバイトを生成しているものが原因です。

この場合、私のお金は、jasperBuilderこのコードを実行する前にオブジェクトを構成/使用した方法になります。

于 2013-12-14T12:10:38.033 に答える