2013-05-12 36 views
0

我已经配置一个CGContextPDF所以(0,0)坐标是在左上角和使用左下面不是底部:CoreGraphics的改变的坐标,以左上角导致ShowText到颠倒呈现

context.TranslateCTM(0, height); 
context.ScaleCTM(1, -1); 

但是,现在每当我打电话给ShowText时,文字都会颠倒。我记得使用iOS的MonoTouch解决了这个问题,修复方法是做到上述,但是,区别在于UIKit坐标系已经在左上角开始了。

我试过在选择字体之后以&之前的类似方式翻转TextMatrix比例,但它似乎没有任何效果。

任何想法的?

回答

1

最后想通了这一个了 - 原来所有你需要做的是翻转TextMatrix,如果你之前做到这一点也没关系,或者你翻转后的坐标体系,为整个环境。为什么以前没有工作的原因是因为我把它应用到现有的变换而不是分配一个新的,即这个工程

context.TextMatrix = CGAffineTransform.MakeScale(1.0f, -1.0f); 
context.TranslateCTM(0, height); 
context.ScaleCTM(1.0f, -1.0f); 

但这并不

context.TextMatrix.Scale(1.0f, -1.0f); 
context.TranslateCTM(0, height); 
context.ScaleCTM(1.0f, -1.0f); 

另外一个其他缺点是文本总是呈现向上而不是向下,所以如果您想要在(x,y)上绘制而不是下,则总是需要翻译文本的高度。