Мне нужно создать 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
Спасибо, но я уже пробовал. Он корректно создает pdf-файл, но по какой-то причине представление не выставляется правильно, так как оно находится в nib или если оно настроено на текущий вид, вместо этого содержимое представления помещается внизу, перекрывая друг друга. Я проверил, и рамка определенно установлена правильно. Не знаете, почему это произойдет? – user2961403
Вы используете автоматическую компоновку? Интересно, отсутствует ли один из вызовов, которые обычно называются неявно, когда окно выводится на экран, а макет еще не выполнен. Попробуйте что-то вроде '[offScreenView layout];'. –
Нет. Я не использую автомат и макет вызова не изменил ситуацию. Это странно, потому что, когда я использую метод NSBitmapImageRep, который я показал выше, макет правильный. Но я не могу получить от этого до pdf! – user2961403