Flying Saucer-Schriftart für Unicode-Zeichen

Ich generiere PDF mit Grails-Export-Plugin (im Grunde Flying Saucer). Meine GSP-Seite ist eine UTF-8-Seite (oder zumindest zeigen Eigenschaften, dass es sich um UTF-8 handelt, auch am Anfang der GSP-Seite befindet sich eine<?xml version="1.0" encoding="UTF-8"?> Richtlinie). Zuerst erzeugte PDFs enthielten korrekt Umlaute "äöüõ", aber kyrillische Zeichen fehlten im PDF (überhaupt nicht gerendert). Dann habe ich meine CSS-Datei wie in der Dokumentation beschrieben geändert und Folgendes hinzugefügt:

@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 wird auch auf dem Server bereitgestellt. Aber jetzt bekomme ich sowohl Umlaute als auch kyrillische Zeichen als Kästchen gerendert. Wenn ich den Eigenschaftswert -fs-pdf-encoding in Identity-H ändere, werden Umlaute korrekt wiedergegeben, kyrillische Zeichen jedoch als Fragezeichen.

Irgendwelche Ideen, welche Schriftart verwendet werden kann, um sowohl Umlaute als auch kyrillische Zeichen korrekt wiederzugeben? Oder kann mein CSS irgendwie falsch sein? Für Hinweise wäre ich sehr dankbar.

Upd 1: Ich habe auch versucht, CSS zu folgen (das durch erzeugt wurde)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';
}

Ich habe hinzugefügt<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> Ich habe auch versucht, Grails mit -Dfile.encoding = UTF-8 auszuführen, wie hier erwähnt:http://grails.1312388.n4.nabble.com/PDF-plugin-Having-Problems-with-instalation-td2297840.html, aber nichts hilft. Kyrillische Zeichen werden überhaupt nicht angezeigt. Irgendwelche anderen Ideen, was könnte das Problem sein?

*Übrigens:* Ich verpacke mein PDF als zip und sende es in der folgenden Antwort an den Browser zurück:

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 beim Zippen irgendwie überlegen, was ich so mache:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage