Windows ストア アプリの WebView でフォントを使用したいと考えています。
このページを参考にしました。 http://blogs.msdn.com/b/wsdevsol/archive/2012/10/23/about-webview-and-embedded-fonts.aspx
このページは WebView の Navigate メソッドを使用しています。しかし、私は NavigateToString メソッドを使いたいです。フォントを使用する HTML 文字列を NavigateToString メソッドに渡し、その HTML を表示します。次の例 1 は失敗しました。
例 1:
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
MyWebView.NavigateToString("<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta charset=\"utf-8\" /><style type=\"text/css\"> @font-face { font-family: \"ipafont\"; font-style: normal; font-weight: 400; src: url(ipaexm.woff);} .ipa { font-family: \"ipafont\"; font-size: xx-large; }</style></head><body><div class=\"ipa\">Hello, Good morning.</div></body></html>");
}
変えてみた
ソース: URL(ipaexm.woff);
に
src: url("ms-appx-web:///ipaexm.woff");
しかし、私は失敗しました。もちろん、Windows ストア アプリのルート フォルダーに 'ipaexm.woff' フォントを含めました。
以下の例 2 は成功しました。
例 2:
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
string style = "@font-face { font-family: 'ipa'; src: url(data:application/x-font-woff;charset=utf-8;base64," + <BASE 64 ENCODED TEXT OF FONT GOES HERE)> + ") format('woff'), url('ipa__-webfont.ttf') format('truetype'); font-style: normal; font-weight: 400; }";
MyWebView.NavigateToString("<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta charset=\"utf-8\" /><style type=\"text/css\"> @font-face { font-family: 'ipafont'; src: url('ipa__-webfont.eot'); } " + style + " .ipa { font-family: \"ipafont\"; font-size: xx-large; }</style></head><body><div class=\"ipa\">Hello, Good morning.</div></body></html>");
}
私は一種のexample1の方法を使いたいです。私が使用しているフォントは約 5MB であるため、base 64 でエンコードされたフォントのテキストは長すぎます。NavigateToString メソッドでフォントを使用する良い方法はありますか?