CSSを使用して必要なフォントを明示的に設定し、さまざまなシステムやブラウザー間で一貫したフォントレンダリングを実現できます。私がこれを行うことを考えることができる2つの方法があります:
1つは、CSSフォントスタイルを指定することです。デフォルトのフォールバックフォントはserif
です。たとえば、GoogleFontsからDroidSerifフォントを追加し、それをメインのbody
フォントスタイルとして使用するには、次のようにします。
<link href='http://fonts.googleapis.com/css?family=Droid+Serif' rel='stylesheet' type='text/css'>
<style>
body {
font-family: 'Droid Serif', serif;
}
</style>
Droid Serif
最新のすべてのブラウザーに表示され、デフォルトでserif
はHerokuになり、古い/単純なWebブラウザーを備えたデバイスに表示されます。欠点は、Herokuがデフォルトのセリフフォントを使用するため、フォントはブラウザでは一方向に見えますが、PDFでは異なって見えることです。
2番目の方法は、フォントをBase64でエンコードし(このツールを使用できます)、CSSに含めることです。
@font-face {
font-family: 'OpenSans';
src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}
これは、最新のすべてのブラウザーでも機能しますが、Herokuでも機能して、一貫したフォントレンダリングを提供するという追加のボーナスがあります。この方法は、ブラウザだけでなく、開発環境やHeroku全体で一貫性が得られるため、特に便利です。CSSでフォントをgit-pushしたり、ローカルパスや絶対パスを混乱させたりする必要がないためです。