iphone – 在CGContext中绘制PDF正面朝上

iphone – 在CGContext中绘制PDF正面朝上,第1张

概述我在自定义UIView中覆盖了drawRect:方法,我正在做一些自定义绘图.一切进展顺利,直到我需要将PDF资源(准确地说是矢量字形)绘制到上下文中.首先,我从文件中检索PDF: NSURL *pdfURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@ 我在自定义UIVIEw中覆盖了drawRect:方法,我正在做一些自定义绘图.一切进展顺利,直到我需要将pdf资源(准确地说是矢量字形)绘制到上下文中.首先,我从文件中检索pdf:

NSURL *pdfURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"CardKit.bundle/A.pdf"]];CGpdfdocumentRef pdfDoc = CGpdfdocumentCreateWithURL((CFURLRef)pdfURL);CGpdfpageRef pdfpage = CGpdfdocumentGetPage(pdfDoc,1);

然后我创建一个与加载的pdf尺寸相同的框:

CGRect Box = CGpdfpageGetBoxRect(pdfpage,kCGpdfArtBox);

然后我保存我的图形状态,这样我就不会搞砸了:

CGContextSaveGState(context);

然后我执行CTM的缩放翻译,理论上翻转整个上下文:

CGContextScaleCTM(context,1.0,-1.0);CGContextTranslateCTM(context,0.0,rect.size.height);

然后我缩放pdf以使其适当地适合视图:

CGContextScaleCTM(context,rect.size.wIDth/Box.size.wIDth,rect.size.height/Box.size.height);

最后,我绘制pdf并恢复图形状态:

CGContextDrawpdfpage(context,pdfpage);CGContextRestoreGState(context);

问题在于没有任何可见的东西.所有这些代码理论上应该将pdf字形绘制到视图中,对吧?

如果我删除用于翻转上下文的缩放平移,它会完美地绘制:它只是颠倒了.

有任何想法吗?

解决方法 尝试在比例之前进行翻译:

CGContextTranslateCTM(context,rect.size.height);CGContextScaleCTM(context,-1.0);
总结

以上是内存溢出为你收集整理的iphone – 在CGContext中绘制PDF正面朝上全部内容,希望文章能够帮你解决iphone – 在CGContext中绘制PDF正面朝上所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存