Fliegende Untertasse schriftart für unicode-Zeichen

Ich bin die Generierung von PDF mit Grails-export-plugin (im Grunde, Fliegende Untertasse). Mein GSP Seite ist eine UTF-8 Seite (oder zumindest Eigenschaften, die zeigen, dass es UTF-8 ist, auch in der Anfang der GSP-Seite gibt es eine <?xml version="1.0" encoding="UTF-8"?> - Richtlinie). Auf den ersten generierten PDF-Datei korrekt enthalten Umlaute "äöüõ", aber kyrillische Zeichen fehlten PDF-Datei (nicht gerendert wird). Dann habe ich meine geänderte css-Datei wie beschrieben in der Dokumentation durch hinzufügen der folgenden:

@font-face {
    src: url(ARIALUNI.TTF);
    -fs-pdf-font-embed: embed;
    -fs-pdf-font-encoding: UTF-8;
}
body {
      font-family: "Arial Unicode MS", Arial, sans-serif;
}

ArialUni.ttf ist auch auf dem server bereitgestellt. Aber jetzt bin ich immer beide Umlaute und kyrillische Zeichen dargestellt, als Boxen. Wenn ich mich verändert -fs-pdf-encoding-Eigenschaft-Wert für die Identity-H dann Umlaute werden richtig dargestellt, aber kyrillische Zeichen gerendert werden als Fragezeichen.

Irgendwelche Ideen, was Schrift kann verwendet werden, um richtig zu machen sowohl Umlaute und kyrillische Zeichen? Oder kann mein CSS irgendwie falsch? Irgendwelche Tipps würde sehr geschätzt.

Upd 1:
Ich habe auch versucht Folgendes css generiert wurde durch http://fontface.codeandmore.com/):

@font-face {
    font-family: 'ArialUnicodeMS';
    src: url('arialuni.ttf');
    src: url('arialuni.eot?#iefix') format('embedded-opentype'),
        url('arialuni.woff') format('woff'),
        url('arialuni.ttf') format('truetype'),
        url('arialuni.svg#arialuni') format('svg');
    font-weight: normal;
    font-style: normal;
    -fs-pdf-font-embed: embed;
    -fs-pdf-font-encoding: UTF-8;
}

body {
    font-family:'ArialUnicodeMS';
}

Habe ich <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Ich war auch versucht, zu laufen grails-mit -Dfile.encoding=UTF-8, wie hier schon gesagt wurde: http://grails.1312388.n4.nabble.com/PDF-plugin-Having-problems-with-instalation-td2297840.html, aber nichts hilft. Kyrillische Zeichen werden nicht angezeigt. Irgendwelche anderen Ideen was das problem sein könnte?

*BTW:*ich bin Verpackung meine PDF-Datei als zip und senden Sie es zurück an browser in der Antwort so:

response.setHeader "Content-disposition", "attachment; filename=test.zip"
response.setHeader "Content-Encoding", "UTF-8"
response.contentType = 'application/zip'
response.outputStream << zip
response.outputStream.flush()
response.outputStream.close()

Muss ich irgendwie prüfen, Codierung, während zipping????, das mache ich so:

public static byte[] zipBytes(Map<String, ByteArrayOutputStream> fileNameToByteContentMap) throws IOException {
        ByteArrayOutputStream zipBaos = new ByteArrayOutputStream();
        ZipOutputStream zos = new ZipOutputStream(zipBaos);
        fileNameToByteContentMap.eachWithIndex {String fileName, ByteArrayOutputStream baos, i  ->
            byte[] content = baos.buf
            ZipEntry entry = new ZipEntry(fileName)
            entry.setSize(content.length)
            zos.putNextEntry(entry)
            zos.write(content)
            zos.closeEntry()
        }
        zos.close()
        return zipBaos.toByteArray();
    }
  • Wenn Ihr content-type definiert als UTF-8?
  • Du meinst die HTML-content-type?
InformationsquelleAutor Alex K. | 2012-10-10
Schreibe einen Kommentar