此代码从PDF页面创建NSImage。我希望所有页面都显示为未旋转。如果rotation = 0,它可以正常工作。如果rotation = 180,并且我未将CGContextRotateCTM设置为-rotation,则该图像上下颠倒。如果确实将CGContextRotateCTM设置为-rotation,则生成的图像为空白,而不是nil。
CGPDFPageRef pageRef = CGPDFDocumentGetPage (myDocument, pageNumber);
int rotation = CGPDFPageGetRotationAngle(pageRef);
NSImage* anImage;
@try
{
CGContextSaveGState(pdfContext);
CGContextScaleCTM(pdfContext, dpi, dpi);
CGContextRotateCTM(pdfContext, -rotation);
CGContextDrawPDFPage(pdfContext, pageRef);
CGImageRef ref = (CGBitmapContextCreateImage (pdfContext));
anImage = [[NSImage alloc]initWithCGImage:ref size:NSZeroSize];
CGContextRestoreGState(pdfContext);
答案可能很简单,但是我远远超出了我的专业知识。