Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将图像绘制为PDF格式_Objective C_Cocoa_Pdf_Cgcontext - Fatal编程技术网

Objective c 将图像绘制为PDF格式

Objective c 将图像绘制为PDF格式,objective-c,cocoa,pdf,cgcontext,Objective C,Cocoa,Pdf,Cgcontext,我想在PDF中绘制一张完整的页面图像,但我总是很难理解CGContextRefs,所以我不知道如何理解这个错误 注意,这是而不是iOS。我正在做一个桌面应用程序 到目前为止,我有: -(void) addImage:(NSURL*) url toPage:(size_t) page toPDF:(CGPDFDocumentRef) pdf { NSImage *image = [[NSImage alloc] initWithContentsOfURL:url]; image =

我想在PDF中绘制一张完整的页面图像,但我总是很难理解
CGContextRef
s,所以我不知道如何理解这个错误

注意,这是而不是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:无效的上下文0x6100017B540。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。这将成为即将进行的更新中的致命错误


我的上下文有什么问题吗?

您需要创建并使用
CGPDFContext
。不同的上下文特定于不同的渲染过程/目标,因此需要选择正确的上下文。因此,请看一下如何使用创建PDF上下文来将数据写入文件。

谢谢。我看到的是
CGPDFContext..
并且愚蠢地假设它不是CGContextRef