gpt4 book ai didi

iphone - 在 CGContext 中绘制 PDF 右上角

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:06 26 4
gpt4 key购买 nike

我正在重写自定义 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 以使其适合 View :

CGContextScaleCTM(context, rect.size.width/box.size.width, rect.size.height/box.size.height);

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

CGContextDrawPDFPage(context, pdfPage);
CGContextRestoreGState(context);

问题是没有绘制任何可见的东西。所有这些代码理论上应该将 PDF 字形绘制到 View 中,对吗?

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

有什么想法吗?

最佳答案

尝试在缩放之前进行翻译:

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

关于iphone - 在 CGContext 中绘制 PDF 右上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2459587/

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