我想将整页图像绘制为PDF,但是我总是很难把CGContextRef
包裹起来,所以我不知道该怎么做。
请注意,这不是iOS。我正在制作桌面应用程序。
到目前为止,我有这个:
-(void) addImage:(NSURL*) url toPage:(size_t) page toPDF:(CGPDFDocumentRef) pdf
{
NSImage *image = [[NSImage alloc] initWithContentsOfURL:url];
image = [image imageScaledToFitSize:pageSize.size]; //From Matt Gemmell's Crop extensions category
[image lockFocus];
CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
[image drawInRect:pageSize];
[image unlockFocus];
CGPDFPageRef pageRef = CGPDFDocumentGetPage(pdf, page);
CGPDFContextBeginPage(context, pageInformation);
CGContextDrawPDFPage(context, pageRef);
CGPDFContextEndPage(context);
}
但是,我遇到了错误:
CGPDFContextEndPage:无效的上下文0x61000017b540。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。
请问我的情况有什么问题?
最佳答案
您需要创建并使用CGPDFContext
。不同的上下文特定于不同的渲染过程/目标,因此您需要选择正确的上下文。因此,请看使用CGPDFContextCreateWithURL
创建PDF上下文以将数据写入文件。
关于objective-c - 将图像绘制为PDF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20166834/