HTML String <=> NSAttributedString

1410 단어

1. 공식적인 방법


1.1 HTML String => NSAttributedString

- (nullable NSAttributedString *)getAttributedStringFromHTMLString:(NSString *)string
{
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                              NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)};
    
    if (data)
    {
        return [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
    }
    
    return nil;
}

PS: 이 방법은 HTML String에서 선을 삭제하는 스타일을 잃어버립니다

1.2 NSAttributedString => HTML String

- (nullable NSString *)getHTMLStringFromAttributedString:(NSAttributedString *)attributedString
{
    NSDictionary *documentAttributes = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
    NSData *data = [attributedString dataFromRange:NSMakeRange(0, attributedString.length) documentAttributes:documentAttributes error:NULL];
    
    if (data)
    {
        return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    }
        
    return nil;
}

2. DTCoreText


변환 중에 삭제선 정보가 손실되는 문제를 해결하기 위해 DTCoreText로 변경했습니다.

2.1 HTML String => NSAttributedString


2.2 NSAttributedString => HTML String

좋은 웹페이지 즐겨찾기