我动态地将html字符串稍后在PDF上呈现。在我将其渲染为PDF之前,我想先计算它的高度,这样我就可以将一些HTML移到下一页。
在Objective C中可行吗?我不想首先将HTML字符串加载到Web视图以计算高度here,因为生成动态HTML字符串的内存消耗非常高。
答案 0 :(得分:3)
将其加载到NSAttributedString
,然后使用boundingRectWithSize
来获取大小。 (注意:幕后NSAttributedString
将数据传递给Web视图以呈现HTML)
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
CGSize size = CGSizeMake(width, 0);
CGRect rect = [attrStr boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil];