Sto usando wicked_pdf con rails 3.2.11 e ruby 1.9.3 per generare un PDF da HTML e distribuire su Heroku.Wicked PDF + font + heroku + rails3.2
mio pdf.css.scss.erb:
<% app_fullhost = Constants["app_fullhost"] %>
@font-face {
font-family:'DosisMedium'; font-style:normal; font-weight:500;
src: url(<%=app_fullhost%>/app/font/dosis/Dosis-Medium.ttf) format('woff');
}
*, body {
font-family: "DosisLight", 'Times New Roman', 'Arial', sans-serif;
}
dove app_fullhost
è l'ospite esatto, in fase di sviluppo o di produzione.
mio layout PDF include tra le altre cose:
%html{:lang => I18n.locale}
%head
%meta{:charset => "utf-8"}
%title= content_for?(:title) ? yield(:title) : Settings.app_name
= wicked_pdf_stylesheet_link_tag "pdf"
In production.rb ho
config.assets.precompile +=%w(pdf.css)
Questo funziona senza problemi in fase di sviluppo, ma su Heroku il file pdf non caricare il carattere desiderato Ho anche provato diverse soluzioni come l'aggiunta di questi in production.rb:
config.assets.paths << "#{Rails.root}/app/assets/fonts"
config.assets.precompile += %w(*.svg *.eot *.woff *.ttf)
config.assets.precompile += %w(.svg .eot .woff .ttf)
e ho provato anche a cambiare (in pdf.css.scss.erb):
@font-face {
font-family:'Dosis'; font-style:normal; font-weight:500;
src: url('Dosis-Medium.ttf') format('woff');
}
o
@font-face {
font-family:'Dosis'; font-style:normal; font-weight:500;
src: url(<%= asset_path('Dosis-Medium.ttf')%>) format('woff');
}
I font sono in assets/fonts
ed anche in public/app/font/dosis
e URL su Heroku rispondono correttamente con:
..//myapp/app/font/dosis/Dosis-Medium.ttf" and
..//myapp/assets/Dosis-Medium.ttf
Come posso caricare il carattere su Heroku?
questo funziona sicuramente, la mia unica aggiunta a questo sarebbe quella di utilizzare [Font Squirell Generator ] (http://www.fontsquirrel.com/tools/webfont-generator) per ottenere i dati Base64. –
La risorsa del sito Web originale che avevo collegato è offline. È possibile utilizzare Font Squirrel o [** questo strumento **] (http://www.opinionatedgeek.com/dotnet/tools/base64encode/) se si utilizzano font non Squirrel Font. –
Ti sei imbattuto in qualche avvertimento con più voci '@ font-face' codificate Base64 in un unico file? –