使用 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 的 attributedTextproperty 以根据 HTML 文本获得正确格式化的 NSString。

NSString *styledHtml = [self.novel.article styledHTMLwithHTML:self.novel.article];
NSAttributedString *attributedText = [self.novel.article attributedStringWithHTML:styledHtml];
self.articleView.articleContent.attributedText = attributedText;

此实现按照默认 ios 字体(如 ArialHelvetica)的预期工作,但当我们应用自定义乌尔都语字体时文本重叠,即 Nastaleeq。非常感谢您在这方面的任何帮助。

【问题讨论】:

【参考方案1】:

你可以实现webview来加载你的html stringlike,

  NSString* htmlString = @"your html string here";
  [webView loadHTMLString:htmlString baseURL: nil]; //webView  is `UIWebView` object

【讨论】:

以上是关于使用 Nastaleeq Urdu 字体的内容的 HTML 文本到 NSString 转换的主要内容,如果未能解决你的问题,请参考以下文章

如何在 URDU 语言文本上进行 NLP? [关闭]

OpenType GPOS LookupType 8 - 跳过标记

设置元素内容相关整理

如何使用 Cyrillic 字体列出文件夹的内容?

如何使用 base64 自动内联谷歌字体

如何使用 Iron 路由器提供静态内容(图像、字体等)