2013-11-06 4 views
0

Мне нужно создать pdf-файл, содержащий скриншоты из нескольких разных NSViewController's, которые я создаю на экране (так что пользователь не видит никаких изменений).Создайте PDF с экрана NSView

Я смог заставить это работать для просмотра на экране, добавленного к основному NSWindow, но до сих пор не смог получить тот же эффект, не добавляя вид в окно. Я также попытался создать новый NSWindow, который имеет границы, которые находятся за пределами экрана, и добавляет к нему представление, но это не сработало.

мне удалось получить 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, потому что его не в правильном представлении изображения. Есть ли способ конвертировать или есть другой способ сделать это полностью?

Спасибо, Matt

ответ

0

Это может вам начать:

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

Спасибо, но я уже пробовал. Он корректно создает pdf-файл, но по какой-то причине представление не выставляется правильно, так как оно находится в nib или если оно настроено на текущий вид, вместо этого содержимое представления помещается внизу, перекрывая друг друга. Я проверил, и рамка определенно установлена ​​правильно. Не знаете, почему это произойдет? – user2961403

+0

Вы используете автоматическую компоновку? Интересно, отсутствует ли один из вызовов, которые обычно называются неявно, когда окно выводится на экран, а макет еще не выполнен. Попробуйте что-то вроде '[offScreenView layout];'. –

+0

Нет. Я не использую автомат и макет вызова не изменил ситуацию. Это странно, потому что, когда я использую метод NSBitmapImageRep, который я показал выше, макет правильный. Но я не могу получить от этого до pdf! – user2961403

Смежные вопросы