Есть ли способ, чтобы сделать слой хостинга NSView (как он появляется на экране) в PDF или растровый файл без реализующего –drawInContext:
метода каждого CALayer (или аналогичным образом, делегат каждого слоя-х -(void)drawLayer:inContext:
метод)? Я просто хочу содержимое NSView точно так же, как они появляются с минимальным дополнительным кодом рисования.Как вынести слой хостинга NSView в файл
Я читал многочисленные источники, которые говорят, что для рендеринга в PDF вы должны реализовать -drawInContext:
, что имеет смысл, если вы имеете дело с пользовательским слоем подкласса (иначе, как еще он знал бы, что рисовать) , но я хочу, чтобы слои, которые «просто работают», когда вы добавляете их в представление, например CATextLayer или CAShapeLayer. Кажется совершенно излишним переписывать код для CATextLayer, рассказывая ему, как рисовать себя, когда он явно полностью способен это сделать на экран.
Я пропустил что-то очевидное?
Мне очень жаль ... в перечитывании моего вопроса Я понимаю, что это было немного обманчиво; этот ответ определенно работает для создания растрового PDF-файла, но есть ли аналогичный способ создания PDF-документа, который является чисто векторным (поэтому 'CATextLayer' останется выбираемым текстом, 'CAShapeLayer' будет независим от разрешения и т. д.)? Вот где '-drawInContext:' как будто требуется вместо '-renderInContext:', но я не получил его для работы. Вы знаете способ адаптации этого кода для вектора? –