【发布时间】:2012-02-24 01:14:27
【问题描述】:
我正在尝试使用 iText 生成 pdf 文件。
文件生成得很好,但我似乎可以使用特殊字符,如德语 ä、ö、...
我想写的句子是(例如)
■ ...ä...ö...
但输出是
a– ...ä...ö...
(我不得不模糊句子,但我想你明白我在说什么......)
不知何故,无法生成这个黑色方块和所有“元音变音”...
使用的字体如下:
private static Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12,
Font.BOLD);
所以字体没有这些字符应该没有问题...
我是用IntelliJ Idea开发的,.java文件的编码设置为UTF-8,所以应该也没有问题...
我有点迷路了;有谁知道我可以做些什么来让它工作?
提前致谢并打招呼 吉拉拉斯
----------------更新---------------
所以这里是(部分)代码:
@Controller
public class Generator {
...
Font font = new Font(Font.FontFamily.TIMES_ROMAN, 9f, Font.BOLD);
...
Paragraph intro = new Paragraph("Ich interessiere mich für ...!", font_12_bold);
Paragraph wantContact = new Paragraph("■ Ich hätte gerne ... ", font);
...
Phrase south = new Phrase("■ Süden □ Ost-West ...");
...
@RequestMapping(value = "/generatePdf", method = RequestMethod.POST)
@ResponseBody
public String generatePdf(HttpServletRequest request) throws IOException, DocumentException, com.lowagie.text.DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(FILE));
addMetaData(document);
document.open();
addContent(document, request);
document.add(new Paragraph("äöü"));
document.close();
return "";
}
private void addContent(Document document, HttpServletRequest request)
throws DocumentException {
Paragraph preface = new Paragraph();
preface.setAlignment(Element.ALIGN_JUSTIFIED);
addEmptyLine(preface, 1);
preface.add(new Paragraph("Rückantwort", catFont));
addEmptyLine(preface, 2);
preface.add(intro);
addEmptyLine(preface, 1);
if (request.getParameter("dec1").equals("wantContact")) {
preface.add(wantContact);
} else {
...
}
document.add(preface);
}
private static void addEmptyLine(Paragraph paragraph, int number) {
for (int i = 0; i < number; i++) {
paragraph.add(new Paragraph(" "));
}
}
private static void addMetaData(Document document) {
document.addTitle("...");
document.addSubject("...");
document.addKeywords("...");
document.addAuthor("...");
document.addCreator("...");
}
}
我不得不取出一些东西,但我保留了一些元音变字符和其他特殊字符,以便您可以看到问题发生在哪里...... :-)
【问题讨论】:
-
我跳过了 HttpServletRequest 的部分...除了“■”项目符号外,我都正确显示了
-
这有点奇怪...... oO 因为它与硬编码字符串没有任何关系,不是吗?至少它不应该......无论如何,这里没有改变任何东西>。
标签: java pdf utf-8 itext diacritics