我使用NSAttributedString' s -initWithHTML:documentAttributes:方法从HTML-Code创建属性字符串。我尝试转换的HTML代码可能包含以毫米为单位指定的字体大小。生成的属性字符串包含以磅为单位的字体大小。 我想知道默认的DPI来缩放文本以匹配我的目标DPI。
在我的测试中,似乎该方法使用~96 DPI。
NSString *html = @"<html><span style='font-size:10mm'>example</span></html>";
NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *string = [[NSAttributedString alloc] initWithHTML:data documentAttributes:nil];
NSFont *font = [string attribute:NSFontAttributeName atIndex:0 effectiveRange:NULL];
CGFloat pointSize = [font pointSize];
CGFloat defaultDPI = pointSize / 10.0 * 25.4; // (1 mm == 25.4 inch)
NSLog(@"default DPI: %f.", defaultDPI); // returns 96.520000
但是,我找不到这个号码的文档,我担心将来可能会有所改变。因此,我的问题是:
有没有更好的方法来获得默认的DPI?是否有可能在转型前指定DPI?
答案 0 :(得分:0)
DPI因显示设备而异。显示器上的典型值为72dpi,浏览器中的典型值为96 dpi(或者至少它假装为96dpi,即使最终的显示设备不支持)。虽然使用Retina屏幕等,但Mac上的情况会有所不同。
如果您在浏览器中显示此内容,我会坚持使用标准的96dpi假设并信任font-size指令。