イントラネットアプリケーションでいくつかのGoogleフォントを使用する必要があります。クライアントはインターネット接続を持っていてもいなくてもかまいません。ライセンス条項を読むと、法的に許可されているようです。
私の答えは古くなっていることを忘れないでください。
以下に、他にも技術的に洗練された回答があります。
それで、これが現在受け入れられている答えであるという事実があなたにこれがまだ最高のものであるという印象を与えさせないでください。
また、githubの google/font リポジトリで、Googleのフォントセット全体をダウンロードすることもできます。それらはまた 彼らのフォントの〜360MB Zipスナップショット も提供します。
あなたはまずあなたが選択したフォントをzip圧縮パッケージとしてダウンロードし、あなたにたくさんの真のタイプのフォントを提供します。あなたのcssからリンクできるどこかに、公のどこかにコピーしてください。
Google WebFontのダウンロードページには、次のようなインクルードリンクがあります。
http://fonts.googleapis.com/css?family=Cantarell:400,700,400italic,700italic|Candal
それはたくさんの@font-face
定義を通してフォントを定義するCSSにリンクします。
ブラウザで開いてコピーして自分のCSSに貼り付け、URLを修正して正しいフォントファイルとフォーマットタイプを含めます。
したがって、この:
@font-face {
font-family: 'Cantarell';
font-style: normal;
font-weight: 700;
src: local('Cantarell Bold'), local('Cantarell-Bold'), url(http://themes.googleusercontent.com/static/fonts/cantarell/v3/Yir4ZDsCn4g1kWopdg-ehHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
}
これになります:
/* Your local CSS File */
@font-face {
font-family: 'Cantarell';
font-style: normal;
font-weight: 700;
src: local('Cantarell Bold'), local('Cantarell-Bold'), url(../font/Cantarell-Bold.ttf) format('truetype');
}
お分かりのように、あなた自身のシステムでフォントをこのようにホストすることのマイナス面は、あなたが本当のタイプフォーマットにあなた自身を制限する一方で、グーグルウェブフォントサービスはアクセスするデバイスによってどのフォーマットが送信されるかを決めるということです。
さらに、Chrome Dev Toolsにエラーが表示されないようにするため、MIMEタイプを含むフォントを含むディレクトリに.htaccess
ファイルを追加する必要がありました。
この解決法では、真の型のみが必要ですが、font-awesome
のように、異なるフォントを含めたいときにmoreを定義しても問題ありません。
#.htaccess
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
あなたがすべてのフォントの亜種をダウンロードするのに役立つツール localfont.com があります。実装用の対応するCSSも生成します。 非推奨
localfontがダウンしています。代わりに、 Damirが推奨する のように、 google-webfonts-helper を使用できます。
素晴らしい解決策は google-webfonts-helper です。
それはあなたが多くの時間を節約するあなたが一つ以上のフォントの変種を選択することを可能にします。
私は bashスクリプト を作成しました。これはGoogleのサーバー上のCSSファイルをさまざまなユーザーエージェントで取得し、さまざまなフォント形式をローカルディレクトリにダウンロードしてそれらを含むCSSファイルを書き込みます。スクリプトにはBashバージョン4.xが必要です。
スクリプトについては、 https://neverpanic.de/blog/2014/03/19/downloading-google-web-fonts-for-local-hosting/ を参照してください(ここでは再現していません)。私がする必要があるとき、私はただ一箇所でそれを更新する必要があります。
編集:https://github.com/neverpanic/google-font-download に移動しました
(インクルードURLからの)CSSファイルの内容は、どのブラウザから見たかによって異なります。たとえば、Chromeを使用して http://fonts.googleapis.com/css?family=Open+Sans にアクセスすると、ファイルにはWOFFリンクしか含まれていませんでした。 Internet Explorer(下記)を使用して、それはEOTとWOFFの両方を含みました。ダウンロードするために、すべてのリンクをブラウザに貼り付けました。
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot);
src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
}
あなた自身のWebフォントをホストするときは、 各フォントタイプに正しくリンクする 、レガシブラウザのバグなどに対処する必要があります。GoogleWebフォント(Googleによってホストされる)を使うとき、Googleは自動的にそのブラウザの正しいフォントタイプ。
あなたがフォントのライセンスの条項 - 通常はOFLに固執する限り、それは合法的に許可されています。
あなたは一連のウェブフォントフォーマットを必要とするでしょう、そして Font Squirrel Webfont Generator はこれらを作り出すことができます。
しかし、OFLでは、フォントを変更する場合はフォントの名前を変更する必要がありました。ジェネレータを使用するとフォントが変更されます。
私はPHPで書かれた @ neverpanic に似たスクリプトを持っていて、それは自動的にCSSとフォントの両方をダウンロードします(ヒントとヒントなしの両方)Googleから。それはそれからUser Agentに基づいてあなた自身のサーバーから正しいCSSとフォントを提供します。それはそれ自身のキャッシュを保持するので、ユーザーエージェントのフォントとCSSは一度だけダウンロードされるでしょう。
それは時期尚早の段階にあります、しかしそれはここで見つけることができます: DaAwesomeP/php-offline-fonts
私の解決策は、GoogleのWebフォントからTTFファイルをダウンロードしてから onlinefontconverter.com を使用することでした。
あなたは実際にGoogleから直接すべてのフォントフォーマットの変種をダウンロードしてあなたのサーバーから提供するためにあなたのcssに含めることができます。そうすれば、Googleがサイトのユーザーを追跡することを心配する必要がなくなります。しかし、マイナス面はあなた自身のサービングスピードを遅くするかもしれません。フォントはリソースに対してかなり要求が厳しいです。今号ではまだテストをしていませんが、似たような考えがある人もいるでしょうか。
あなたがあなた自身のサーバーですべてのフォント(またはそれらのいくつか)をホストしたいならば、あなたはこのリポジトリからフォントをダウンロードしてあなたが望む方法でそれを使う: https://github.com/praisedpk/Local-Google) - フォント
Webpackを使っているなら、このプロジェクトに興味があるかもしれません: https://github.com/KyleAMathews/typefaces
例えば。あなたはRobotoフォントを使いたいと言います。
npm install typeface-roboto --save
それからそれをあなたのアプリのエントリーポイント(メインのjsファイル)にインポートするだけです。
import 'typeface-roboto'
以下のようなGoogle Fonts CSSインポートURLからダウンロードリンクを取得するための小さなPHPスクリプトを作成しました: https://fonts.googleapis.com/css?family=Roboto:400,700|Slabo+27px|Lato:400,300イタリック、900イタリック
あなたはここでこのツールを使用することができます: http://nikoskip.me/gfonts.php
たとえば、上記のインポートURLを使用すると、次のようになります。
不気味なタスクで grunt-local-googlefont を使用しました。
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
"local-googlefont" : {
"opensans" : {
"options" : {
"family" : "Open Sans",
"sizes" : [
300,
400,
600
],
"userAgents" : [
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)", //download eot
"Mozilla/5.0 (Linux; U; Android 4.1.2; nl-nl; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", //download ttf
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1944.0 Safari/537.36" //download woff and woff2
],
"cssDestination" : "build/fonts/css",
"fontDestination" : "build/fonts",
"styleSheetExtension" : "css",
"fontDestinationCssPrefix" : "fonts"
}
}
}
});
grunt.loadNpmTasks('grunt-local-googlefont');
};
それから、それらを取り出すために:
grunt local-googlefont:opensans
注意してください、私はオリジナルからのフォークを使っています、それはそれらの名前に空白を含むフォントを検索するときよりよく働きます。
ソースフォントは https://github.com/google/fonts からダウンロードできます。
その後、font-ranger
ツールを使用して、大きなUnicodeフォントを複数のサブセット(ラテン、キリルなど)に分割します。あなたはこのツールで次のことをするべきです:
フォントレンジャー: https://www.npmjs.com/package/font-ranger
P.S Node.js APIを使ってこれを自動化することもできます。
Google Webフォントリンクからすべてのフォントをダウンロードするための、プレーンJavaで書かれた非常に単純なスクリプトがあります(複数のフォントがサポートされています)。また、CSSファイルをダウンロードしてローカルファイルに適応させます。ユーザーエージェントは、WOFF2以外の他のファイルも取得するように適応させることができます。 https://github.com/ssc-hrep3/google-font-download を参照してください。
作成されたファイルはビルドプロセスに簡単に追加することができます(例えば vue-webpack
のようなwebpackビルド)。
k0pernicus に加えて best-serving-local を提案したいと思います。それはまたウェブサーバーオペレータが彼ら自身のウェブサーバーからGoogleウェブフォントをダウンロードして提供することを可能にするためのbash(v4)スクリプトです。しかし、他のbashスクリプトに加えて、ユーザーは最新のフォントファイルとcssファイルの提供を(cronなどを介して)完全に自動化できます。