Hi,
I have the following class handling custom textual pdf annotations in my app:
class PDFSheetTextAnnotation: PDFAnnotation {
override func draw(with box: PDFDisplayBox, in context: CGContext) {
let text = value(forAnnotationKey: .contents) as? NSString
UIGraphicsPushContext(context)
context.saveGState()
var attributes = [
NSAttributedStringKey.font: font as Any,
NSAttributedStringKey.foregroundColor: fontColor as Any,
] as [NSAttributedStringKey : Any]
if value(forAnnotationKey: .color) != nil {
attributes[NSAttributedStringKey.backgroundColor] = color
}
text?.draw(in: bounds, withAttributes: attributes)
context.restoreGState()
UIGraphicsPopContext()
}
}
Unfortunately text is drawn upside down. I tried by flipping the context with:
context.textMatrix = .identity
context.scaleBy(x: 1.0, y: -1.0)
context.translateBy(x: 0, y: bounds.height)
but this seems to push my text out of the view. Looking at the original context transformation via the ctm property gives me the following result:
(lldb) po context.ctm
▿ CGAffineTransform
- a : 2.33217189314749
- b : 0.0
- c : 0.0
- d : 2.33217189314749
- tx : -128.766743135888
- ty : -1661.09549454122
I just can't figure out how to transform the context to get rid of the upside down flipping... any hints?
Thank you so much in advance and happy WWDC!
Arno