我有一个UIWebView,我有一个自定义字体,我想加载到一个可编辑的html文档中,我将通过UIWebView显示。在我的SupportingFiles(resources)文件夹中,我有“Nosifer-Regular.ttf”...要在我的HTML中使用自定义字体,我需要字体块的路径(URL)...我试过这样做,但它没有'似乎工作......任何想法?
bundle = [NSBundle mainBundle];
pathFont = [bundle bundlePath];
fontURL = [NSBundle pathForResource:@"Nosifer-Regular" ofType:@"ttf" inDirectory:pathFont];
path_font = [fontURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
fileAppend = [[NSString alloc] initWithFormat:@"file://"];
path_font = [[NSString alloc] initWithFormat:@"%@%@", fileAppend, path_font];
HTML(CSS):
@font-face {
font-family: 'Nosifer';
font-style: normal;
font-weight: 400;
src: local('Nosifer'), local('Nosifer-Regular'), url('%@') format('truetype');
}
其中%@被替换为“path_font”(在第一个代码块中定义)
答案 0 :(得分:4)
首先,在info.plist
中添加归档“应用程序提供的字体”。它将是一个像
item0 myFont.otf
item1 anotherFont.ttf
或其他什么。
在HTML中使用font-face添加字体。并将您的字体文件放在与html文件相同的目录中。如果HTML是动态生成的,而不是从bundle中显示,那么你应该复制字体。
祝你好运。答案 1 :(得分:1)
我在这里得到了一个有效的HTML代码示例。
<html>
<head>
<style type='text/css'>
p.p1 {margin: 0.0px 0.0px 0.0px 30.0px; font: 34.0px;}
@font-face {
font-family: 'Nosifer'; font-style: normal; font-weight: 400; src: local('Nosifer'), local('Nosifer-Regular'), url('Nosifer-Regular.ttf') format('truetype');
}
.nosifer {
font-family: Nosifer;
}
</style>
</head>
<body allowtransparency='true'>
<p class="nosifer">Nosifer ABCabc</p>
</body>
正如您所看到的,我使用了css类来更轻松地定义字体。我不确定font-face中的所有CSS代码是什么意思,但它似乎有效。
我确认您需要将“Nosifer-Regular.ttf”添加到 * -info.plist文件中的应用程序提供的字体数组中(键:应用程序提供的字体)。 顺便说一下,我用谷歌搜索了Nosifer-Regular.ttf,发现它在一个嘈杂的网站上。它真的有用:http://www.ffonts.net/Nosifer.font.download
然后,我还能够加载我将在我的情况下使用的OTF。在CSS中,我将格式从truetype更改为opentype。
答案 2 :(得分:1)
在项目中添加自定义字体。然后
获取字体名称
UIFont *font = [UIFont fontWithName:@"Your-Custom-font" size:20];
然后创建html字符串
NSString *htmlHeader=[NSString stringWithFormat:@"<html><head><head><link rel=\"stylesheet\" type=\"text/css\" href=\"file://localhost%@\"></head><body><font face=\"%@\"; size=\"4\">HI</font></body></html>",cssPath,font.familyName];
祝你好运。
答案 3 :(得分:0)
以下是将字体添加到Info.plist中的方法:
<key>UIAppFonts</key>
<array>
<string>Nosifer-Regular.ttf</string>
</array>
然后根据this other answer使用@ font-face。