- Я пытаюсь напечатать нижний колонтитул с 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)
}
// ...
}
Отображение нижнего колонтитула