使用 Nastaleeq Urdu 字体的内容的 HTML 文本到 NSString 转换
Posted
技术标签:
【中文标题】使用 Nastaleeq Urdu 字体的内容的 HTML 文本到 NSString 转换【英文标题】:HTML text to NSString conversion for content using Nastaleeq Urdu font 【发布时间】:2016-09-04 20:11:33 【问题描述】:我们的一款基于乌尔都语的应用的字体是“Jameel Noori Nastaleeq Kasheeda”。我们应该在将其 html 文本转换为 NSString 后显示内容(在 UILabel 上)。
为了将 HTML 转换为 NSString,我们实现了以下函数,
-(NSString *)styledHTMLwithHTML:(NSString *)HTML
NSString *style = @"<meta charset=\"UTF-8\"><style> body font-family: 'Jameel-Noori-Nastaleeq'; font-size: 20px; b font-family: 'Jameel-Noori-Nastaleeq'; </style>";
return [NSString stringWithFormat:@"%@%@", style, HTML];
- (NSAttributedString *)attributedStringWithHTML:(NSString *)HTML
NSDictionary *options = @ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType ;
return [[NSAttributedString alloc] initWithData:[HTML dataUsingEncoding:NSUTF16StringEncoding] options:options documentAttributes:NULL error:NULL];
然后我们设置 UILabel 的 attributedText
property 以根据 HTML 文本获得正确格式化的 NSString。
NSString *styledHtml = [self.novel.article styledHTMLwithHTML:self.novel.article];
NSAttributedString *attributedText = [self.novel.article attributedStringWithHTML:styledHtml];
self.articleView.articleContent.attributedText = attributedText;
此实现按照默认 ios 字体(如 Arial 或 Helvetica)的预期工作,但当我们应用自定义乌尔都语字体时文本重叠,即 Nastaleeq。非常感谢您在这方面的任何帮助。
【问题讨论】:
【参考方案1】:你可以实现webview来加载你的html string
like,
NSString* htmlString = @"your html string here";
[webView loadHTMLString:htmlString baseURL: nil]; //webView is `UIWebView` object
【讨论】:
以上是关于使用 Nastaleeq Urdu 字体的内容的 HTML 文本到 NSString 转换的主要内容,如果未能解决你的问题,请参考以下文章