HTML в атрибутированную строку в HTML увеличить размер шрифта для случайного текста

Это мой пример строки HTML.

"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta http-equiv=\"Content-Style-Type\" content=\"text/css\"><title></title><meta name=\"Generator\" content=\"Cocoa HTML Writer\"><style type=\"text/css\">p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 40.0px; font: 33.2px '.SF UI Text'; color: #000000; -webkit-text-stroke: #000000}span.s1 {font-family: '.SFUIText'; font-weight: normal; font-style: normal; font-size: 33.19pt; font-kerning: none}</style></head><body><p class=\"p1\"><span class=\"s1\">123</span></p></body></html>"

Вот две функции для преобразования из HTML в строку атрибута в HTML для работы с размером сервера.

Атрибут строки в HTML:

func attributeToHTML(_ attr: NSAttributedString) -> String {

    var resultHtmlText = ""
    do {

        let r = NSRange(location: 0, length: (attr.length))
        let att = [NSAttributedString.DocumentAttributeKey.documentType: NSAttributedString.DocumentType.html]
        let d = try attr.data(from: r, documentAttributes: att)

        if let h = String(data: d, encoding: .utf8) {
            resultHtmlText = h
        }
    }
    catch {
        print("utterly failed to convert to html!!! \n>\(String(describing: attr))<\n")
    }
    return resultHtmlText
}

HTML для атрибутированной строки:

func htmlToAttribute(_ string: String) -> NSAttributedString {
    let htmlString = string
    var result = NSAttributedString()
    do {
        let options = [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html]
        let str = try NSAttributedString(data: htmlString.data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: options, documentAttributes: nil)
        result = attributedString
    } catch {
        print(error)
    }

    return result
}

Когда я конвертирую строку HTML в строку с атрибутами, она увеличивает размер шрифта и отлично работает с преобразованием строки с атрибутами в HTML.

Перечисляя объекты, я также могу изменить размер шрифта, но его динамическое содержимое любого типа строки HTML будет получено в ответ. Так что это не решения.

Пожалуйста, предложите способ работы с HTML-контентом в UITextview для редактирования и хранения на сервере.


person Solid Soft    schedule 27.07.2018    source источник
comment
Я уже упоминал, что перечисляя объекты, я также могу редактировать размер шрифта, но его динамическое содержимое любого типа HTML-строки получает в ответ. Так что это не решения.   -  person Solid Soft    schedule 30.07.2018
comment
Объясняется, что, похоже, есть ошибка: я не знаю, почему он конвертирует px в pt. Кажется, это на Cocoa (Touch), поэтому вы ничего не можете сделать, кроме как изменить их.   -  person Larme    schedule 30.07.2018