最近、私のプロジェクトで問題が発生しました。NSAttributedStringをHTMLファイルに変換する必要があります。解決策TagNameとidNameおよびClassNameのみを使用してHTMLファイルを出力すると同時に、CSSスタイルファイルを出力してHTMLファイルの表示方法を制御するため、ここをクリックしても機能しません。これが私のサンプルコードです。私の意図を理解していただければ幸いです。
-(NSDictionary *)html
{{
NSTextStorage * textStorage=[自己コンテンツ];
NSArray * arr=[textStorage段落];
//CSS辞書を初期化します
NSMutableDictionary * dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
nil];
NSEnumerator * paragraphEnumerator;
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"];
while(paragraph = [paragraphEnumerator nextObject]){
//初期化します
NSUIntegerの長さ;
NSRangeeffectiveRange = NSMakeRange(0、0);
id attributeValue;
長さ=[段落の長さ];
//フォント属性を取得します
attributeValue = [段落属性:NSFontAttributeNameatIndex:NSMaxRange(effectiveRange)effectiveRange:&effectiveRange];
NSLog(@ "font is%@"、[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 appendString:@ ""];
NSLog(@ "htmlString is%@"、htmlString);
[paragrapHTMLStrings addObject:htmlString];
htmlString = nil;
}
NSMutableString * htmlStringOfGraphToReturn = [NSMutableString stringWithString:@ ""];
NSString * stringToAdd;
NSEnumerator * stringEnumerator;
stringEnumerator = [paragrapHTMLStrings 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(@ "%@"、文字列);
dictを返します。
}