从屏幕外的NSView创建PDF

时间:2013-11-06 16:53:43

标签: macos cocoa

我需要创建一个pdf,其中包含我在屏幕外创建的许多不同NSViewController's的屏幕截图(因此用户看不到任何更改)。

我已经能够将此功能用于添加到主NSWindow的屏幕视图,但到目前为止,如果不将视图添加到窗口,则无法获得相同的效果。我还尝试创建一个新的NSWindow,它已经离开屏幕并将View添加到屏幕上,但它不起作用。

我设法从屏幕NSImage使用以下内容获得NSView: -

    NSBitmapImageRep *bitmapImageRep = [offScreenView bitmapImageRepForCachingDisplayInRect:offScreenView.bounds];
    [offScreenView cacheDisplayInRect:offScreenView.bounds toBitmapImageRep:bitmapImageRep];
    NSImage *image = [[NSImage alloc] initWithSize:bitmapImageRep.size];
    [image addRepresentation:bitmapImageRep];

但是我无法从PDFDocument得到它,因为它没有正确的图像表示。有没有办法转换,还是有其他办法完全做到这一点?

谢谢, 马特

1 个答案:

答案 0 :(得分:0)

这可能会让你开始:

NSData  *pdfData=[offScreenView dataWithPDFInsideRect:[offScreenView frame]];