UIPrintPageRenderer: невозможно напечатать html в нижнем колонтитуле - PullRequest
0 голосов
/ 14 февраля 2019
  • Я пытаюсь напечатать нижний колонтитул с HTML-кодом в содержимом.
  • Вы можете увидеть текст в footerText, который содержит html текст ниже.
  • Я использую UIMarkupTextPrintFormatter для преобразованиямой HTML.

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

class CustomPrintPageRenderer: UIPrintPageRenderer {

    let A4PageWidth: CGFloat = 595.2
    let A4PageHeight: CGFloat = 841.8

    // ...

    override func drawFooterForPage(at pageIndex: Int, in footerRect: CGRect) {
        let footerText: String = "test<br>Page \(pageIndex + 1)"
        let fmt = UIMarkupTextPrintFormatter(markupText: footerText)
        self.addPrintFormatter(fmt, startingAtPageAt: pageIndex)
        let font = UIFont(name: "Helvetica Neue", size: 14.0)
        let textSize = getTextSize(text: footerText as String, font: font!)

        let centerX = footerRect.size.width/2 - textSize.width/2
        let centerY = footerRect.origin.y + self.footerHeight/2 - textSize.height/2
        let attributes = [convertFromNSAttributedStringKey(NSAttributedString.Key.font): font!, convertFromNSAttributedStringKey(NSAttributedString.Key.foregroundColor): UIColor(red: 205.0/255.0, green: 205.0/255.0, blue: 205.0/255, alpha: 1.0)]

        footerText.draw(at: CGPoint(x: centerX, y: centerY), withAttributes: convertToOptionalNSAttributedStringKeyDictionary(attributes))


        // Draw a horizontal line.
        let lineOffsetX: CGFloat = 20.0
        let context = UIGraphicsGetCurrentContext()
        context!.setStrokeColor(red: 205.0/255.0, green: 205.0/255.0, blue: 205.0/255, alpha: 1.0)
        context!.move(to: CGPoint(x: lineOffsetX, y: footerRect.origin.y))
        context!.addLine(to: CGPoint(x: footerRect.size.width - lineOffsetX, y: footerRect.origin.y))
        context!.strokePath()

        self.printFormattersForPage(at: pageIndex)
    }

    // ...

}

Отображение нижнего колонтитула

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...