2012-02-01 4 views
4

Я пытаюсь создать pdf-файл с помощью iText.
Файл получает производится только в порядке, но я могу показаться, чтобы использовать специальные символы, такие как Герману, ö, ...
Приговор я хочу записать это (например)iText не любит мои специальные символы

■ ... ä ... ö ...

но выход

â- ... ä ... ö ...

(Мне нужно было размыть предложения, но я думаю, вы видите, о чем я говорю ...)

Как-то эта черная блок-штука и все «Umlaute» не могут быть сгенерированы ...
шрифт используется следующее:

private static Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, 
    Font.BOLD); 

Так что не должно быть никаких проблем о шрифте, не имея этих персонажей ...
Я использую IntelliJ Idea разработать кодировку файла .java установлен на UTF-8, поэтому проблем не должно быть также ...

Я как бы потерялся здесь; кто-нибудь знает, что я могу сделать, чтобы заставить его работать?

Спасибо заранее и Greetz gilaras

--------------- UPDATE ---------------

так вот (часть) кода:

@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("..."); 
    } 

} 

я должен был принять некоторые вещи, но я сохранил некоторые умляут символьных и другие специальные символы, так что вы можете увидеть, где проблема возникает .. . :-)

+0

Я пропустил часть с HttpServletRequest ... и я получаю все отображается правильно, за исключением «■» пуль – JScoobyCed

+0

Это какой-то странный ... oO Поскольку это не имеет ничего общего с жестко закодированными строками, не так ли? По крайней мере, это не должно ... В любом случае, ничего здесь не изменилось. <Я думаю, самое лучшее, что нужно сделать, это посмотреть в другом направлении, и, может быть, результат не будет иметь формата pdf ... – gilaras

ответ

2

Вы можете попытаться встроить шрифт, используя эту технику:

BaseFont times = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
Font font = new Font(times, 12, Font.BOLD); 
+0

Привет, спасибо за ваш ответ. К сожалению, ничего не изменилось: -/ – gilaras

+0

Может быть другой код, необходимый для вставки шрифта. Одна версия для встраивания всех шрифтов: FontFactory.defaultEmbedding = true; Также, Times New Roman обычно поддерживает эти символы :)? – JScoobyCed

+0

FontFactory.defaultEmbedding = true; не решает его: -/Times New Roman должен иметь эти символы, ... я не уверен, хотя, и я действительно не знаю, как узнать ...?! Если обычная работа с Word и т. Д. Обычна, чем Times New Roman поддерживает эти символы ...: -/ – gilaras

Смежные вопросы