2

以下に追加したように、エクスポーターのCHARACTER_ENCODINGプロパティをUTF-8に設定したにもかかわらず、iText PDF ライブラリを使用して PDF をエクスポートしているときに、文字エンコーディングの問題に直面しています。

Class clazz = Class.forName(User.class);
Document document = new Document();
PdfWriter.getInstance(document, baos);
document.open();
addMetaData(document);
addDate(document);
addTitlePage(document, className);
addEmptyLineToDocument(document, 2);
addContent(document, className, clazz);
addEmptyLineToDocument(document, 2);
addSignature(document);
return document;

addContentメソッドのサンプルは次のとおりです。

private static FontFamily fontFamily = FontFamily.TIMES_ROMAN;
Font fontNormal10 = new Font(fontFamily, 10, Font.NORMAL);
Paragraph paragraph = new Paragraph();
Chunk chunk = new Chunk("Here is the list of " + className, fontNormal10);
paragraph.add(chunk);
// continues

次に、 ServletOutputStream を使用してドキュメントを作成します。

// **document** => which I created and returned above
document.close();
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setHeader("Content-Disposition", "attachment; filename=" + outputFileName);
response.setContentType("application/pdf; charset=UTF-8");
response.setContentLength(baos.size());
ServletOutputStream outputStream = response.getOutputStream();
baos.writeTo(outputStream); 
outputStream.flush();
outputStream.close();
  • また、JVM パラメータ「file.encoding=UTF-8」も追加しました。
  • 「 charset=UTF-8;」プロパティで応答コンテンツ タイプを設定します。

何か案は?前もって感謝します..

4

0 に答える 0