gpt4 book ai didi

ios - 使用翻转坐标打印

转载 作者:行者123 更新时间:2023-11-29 13:05:48 26 4
gpt4 key购买 nike

我有一个为 OS X 编写的非常复杂的打印引擎,我需要将其移植到 iOS。一般是NSView在纸上打印各种字符串和图像的子类 - 想象一张发票。

现在我需要将它移植到 iOS - 我的第一步当然是使用各种宏来桥接 CG/NS 内容 (e.g. NSRect<->CGRect)我已经到了一个点, View 实际上将自己打印在纸上(使用 - viewPrintFormatter ),但是,坐标被翻转了,因为 Cocoa Touch 使用翻转的坐标,所以整个布局是错误的。

有很多答案通过对当前上下文应用变换来翻转坐标,但是,这也会水平翻转任何打印的文本 - 因此虽然布局正确,但文本难以辨认,这是一个大问题。

将整个引擎移动到翻转坐标是一种选择,但这将花费大量时间并会带来许多其他问题。

有没有人遇到过这个问题并以某种方式解决了它?

最佳答案

您通常可以通过更改当前变换来做到这一点,而无需同时水平翻转。您只需将 Y 坐标缩放 -1,然后将它们偏移 View 的高度。所以你的仿射变换矩阵看起来像这样:

| 1.0  0.0 | 
| 0.0 -1.0 |
| 0.0 h |

其中 h 是 View 的高度。所以在代码中,它会是这样的:

CGContextScaleCTM (context, 1.0, -1.0);
CGContextTranslateCTM (context, 0.0, h);

(我可能把那些顺序颠倒了——我永远记不起它们的顺序了!)

关于ios - 使用翻转坐标打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18682553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com