我在 Cocoa 应用程序中有一系列屏幕外 NSView,它们用于编写 PDF 以进行打印。视图不在 NSWindow 中,或以任何方式可见。
我希望能够生成该视图的缩略图,就像 PDF 看起来一样,但按比例缩小以适合某个像素大小(限制为宽度或高度)。这需要尽可能快,所以我想避免渲染为 PDF,然后转换为光栅和缩放 - 我想直接转到光栅。
目前我正在做:
NSBitmapImageRep *bitmapImageRep = [pageView bitmapImageRepForCachingDisplayInRect:pageView.bounds];
[pageView cacheDisplayInRect:pageView.bounds toBitmapImageRep:bitmapImageRep];
NSImage *image = [[NSImage alloc] initWithSize:bitmapImageRep.size];
[image addRepresentation:bitmapImageRep];
这种方法效果很好,但我不知道如何在渲染 bitmapImageRep 之前对 NSView 应用缩放。我想避免使用scaleUnitSquareToSize
,因为据我了解,它只会改变边界,而不是 NSView 的框架。
关于这样做的最佳方法有什么建议吗?