2013-12-09 17 views
5

Garnelen verwendet, hat eine begrenzte Anzahl von Schriften unter Prawn::BASEDIR}/data/fonts/externe TTF-Schriften Verwendung von PDF mit japanischen Text zu erzeugen Garnelen

ich gkai00mp.ttf versucht, aber PDF erzeugt zeigt nur die ersten Buchstaben „千“ von 千葉, zum Beispiel.

Ich fühle mich wie diese Schrift ist gut für chinesische Schriftzeichen.

font("#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf") do 
    text "千葉" 
end 

Ist es möglich, externe Schriftarten hochzuladen und zu verwenden? Wenn ja, woher diese Schriften stammen?

Meine umgebung: Neueste Ruby and Rails. Prawn Version 0.12.0

Antwort

5

Hier möchte ich mit der Lösung teilen.

Ich habe auch geschrieben, das Problem hier https://github.com/prawnpdf/prawn/issues/595 und der Rat war:

Die TTF Schriftarten, die das Handbuch mit mit Garnelen sind für die Prüfung und verwenden versenden ... sie sind nicht für die regelmäßige gemeint benutzen. Machen Sie eine Websuche nach "Free Japanese TTF font" und ich bin sicher, dass Sie wahrscheinlich etwas finden werden.

Also, ich habe gegoogelt und gefunden http://www.wazu.jp/gallery/Fonts_Japanese.html und getestet mona.ttf, insbesondere, und das funktionierte.

+2

+1 für die Verfolgung und das Lösen Ihrer eigenen Frage (bitte kreuzen Sie auch Ihre eigene Antwort an, um es zu lösen). Wenn es einen anderen interessanten Code gibt, den Sie verwendet haben, um ihn zum Laufen zu bringen, fügen Sie ihn bitte Ihrer Antwort für zukünftige Benutzer hinzu. –

1

Ich habe vor kurzem Prawn (Version 2.0.2 mit prawn-table Version 0.2.2) verwendet, um eine PDF in Japanisch zu generieren, und hatte leider kein Glück mit irgendeiner der in der angenommenen Antwort geposteten TTF-Fonts (die akzeptierte Antwort) war immer noch eine große Hilfe, zu wissen, dass japanischer Text nicht mit den eingebauten Schriften von Prawn gerendert werden kann!).

Ich hatte jedoch Glück mit den TTF-Dateien von IPA fonts mit Prawn, speziell die "4 Schriftarten-Paket" sie auf der Seite aufgelistet, die die IPA Mincho und IPA Gothic-Schriften enthält. Ich habe die IPAPMincho Schriftart (ipamp.ttf) für "normale" Schriftart und IPAPGothic (ipagp.ttf) für "fett"; es sind verschiedene Schriftarten, aber eine funktionierte für mich als die "fette Version" der anderen.

In meiner Prawn-Konfiguration verwendete ich Standardschriftarten, wo ich konnte (sagen wir für englische Dokumente), aber die TTF-Dateien für Japanisch, die im Handumdrehen konfiguriert wurden. Dies führte zu einem Code, der dem folgenden ähnelte:

Prawn::Document.generate("MyJapaneseDocument.pdf") do |pdf| 
    # assume `font_name` here is something like "IPA", 
    # ie not a font that is shipped with the Prawn gem 
    unless Prawn::Font::AFM::BUILT_INS.include?(font_name) 
    pdf.font_families.update(
     font_name => { 
     normal: "path/to/ipamp.ttf", 
     bold: "path/to/ipagp.ttf" 
     } 
    ) 
    end 
    pdf.font font_name 
end