Как распечатать график CorePlot

Я пытаюсь распечатать NSView, который включает в себя пару круговых диаграмм основного сюжета среди других элементов. Однако круговые диаграммы не отображаются. Теперь я понимаю, что представления, поддерживаемые слоями, не печатаются, но мне трудно найти какие-либо примеры, в которых люди обходили это и печатали графики основных диаграмм в NSView. Каков наилучший подход для этого?


person Cory    schedule 02.04.2014    source источник


Ответы (1)


Для меня это сработало, как только я настроил printRect, например:

NSRect printRect = NSZeroRect;
printRect.size.width  = (printInfo.paperSize.width - printInfo.leftMargin - printInfo.rightMargin) * printInfo.scalingFactor;
printRect.size.height = (printInfo.paperSize.height - printInfo.topMargin - printInfo.bottomMargin) * printInfo.scalingFactor;

self.hostingView.printRect = printRect;     
op = [NSPrintOperation printOperationWithView:self.hostingView printInfo:printInfo];

Примечание self.hostingViewотносится к CorePlot hostingView.

person Volker    schedule 02.04.2014
comment
Спасибо, это заставляет меня двигаться в правильном направлении, это отлично работает, если вы просто хотите построить один график. Но у меня есть пара графиков в NSView, а также дополнительные элементы, поэтому я хотел бы распечатать все элементы в том виде, в каком они расположены в NSView. Но это, безусловно, меня заводит. - person Cory; 02.04.2014
comment
Просто нужно было установить для свойства printRect в каждом из хост-представлений значение [self view] frame]] и все работает! Еще раз спасибо! - person Cory; 02.04.2014
comment
На самом деле очень просто: self.hostingView.printRect = self.hostingView.bounds - person Lubos; 12.04.2016