最近,我在项目中遇到了一个问题。我需要将 NSAttributedString 转换为 HTML 文件。解决方案 Click here对我不起作用,因为只想输出带有 TagName 和 idName 和 ClassName 的 HTML 文件,同时输出 CSS 样式文件以控制 HTML 文件的显示方式。这是我的示例代码,我希望你能得到我的意图:
- (NSDictionary *)html
{
NSTextStorage *textStorage = [自身内容];
NSArray *arr = [textStorage 段落];
// 初始化 CSS 字典
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
零];
NSEnumerator *paragraphEnumerator;
段落枚举器 = [arr objectEnumerator];
NSAttributedString *段落;
NSMutableArray *paragrapHTMLStrings = [[NSMutableArray alloc] initWithCapacity:[arr count]];
NSMutableString *cssString = [[NSMutableString alloc] initWithCapacity:0];
[cssString appendString:@"div{"];
[cssString appendString:[NSString stringWithFormat:@"-webkit-column-count:%ld;", self.columnCount]];
[cssString appendString:[NSString stringWithFormat:@"width:%fpx;", self.bounds.size.width]];
[cssString appendString:[NSString stringWithFormat:@"height:%fpx;", self.bounds.size.height]];
[cssString appendString:@"}"];
[dict setObject:cssString forKey:@"css"];
而(段落= [paragraphEnumerator nextObject]){
// 初始化
NSU整数长度;
NSRange 有效范围 = NSMakeRange(0, 0);
id 属性值;
长度 = [段落长度];
// 获取字体属性
attributeValue = [段落属性:NSFontAttributeName atIndex:NSMaxRange(有效范围)有效范围:&有效范围];
NSLog(@"字体为 %@", [attributeValue fontName]);
NSLog(@"font-size is %f", [[[attributeValue fontDescriptor] objectForKey:NSFontSizeAttribute] floatValue]);
NSMutableString *htmlString = [NSMutableString stringWithFormat:@"", [attributeValue fontName],
[[[attributeValue fontDescriptor] objectForKey:NSFontSizeAttribute] floatValue]];
[htmlString appendString:[段落字符串]];
[htmlString 附加字符串:@”"];
NSLog(@"htmlString 是 %@", htmlString);
[段落HTMLStrings addObject:htmlString];
htmlString = 无;
}
NSMutableString *htmlStringOfGraphToReturn = [NSMutableString stringWithString:@""];
NSString *stringToAdd;
NSEnumerator *stringEnumerator;
stringEnumerator = [paragraphHTMLStrings objectEnumerator];
while (stringToAdd = [stringEnumerator nextObject])
{
[htmlStringOfGraphToReturn appendString:stringToAdd];
}
[htmlStringOfGraphToReturn appendString:@""];
[dict setObject:htmlStringOfGraphToReturn forKey:@"html"];
// 测试部分
CSSSetGenerator *generator = [[CSSSetGenerator alloc] init];
NSMutableString *string = [生成器输出CSSStyleContent:self];
NSLog(@"%@", 字符串);
返回字典;
}