最近,我在项目中遇到了一个问题。我需要将 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(@"%@", 字符串); 返回字典; }