Swift PDF рендер любой UIView или UIViewController PDFKit - PullRequest
0 голосов
/ 24 июня 2019

Я провел небольшое исследование и обнаружил, что могу рисовать изображения, строки, фигуры с помощью библиотеки PDFKit. Есть ли простой способ нарисовать UIView или представление UIViewController внутри документа PDF?

Я предпочитаю быстрый ответ, но я также приму Objective-C.

1 Ответ

0 голосов
/ 24 июня 2019

UIView, а также представление, содержащееся в UIViewController, могут быть отображены со слоем:

Получить контекст:

let context = UIGraphicsGetCurrentContext()!

UIView:

view.layoutIfNeeded()
view.layer.render(in: context)

UIViewController

controller.loadViewIfNeeded()
controller.view.layer.render(in: context)

Полный рабочий скрипт:

let pdfMetadata =
[
    kCGPDFContextCreator: "MyAppName",
    kCGPDFContextAuthor: "TheAuthor"
]
UIGraphicsBeginPDFContextToFile(filePath, CGRect.zero, pdfMetadata)

let context = UIGraphicsGetCurrentContext()!

UIGraphicsBeginPDFPage()

controller.loadViewIfNeeded()
controller.view.layer.render(in: context)

UIGraphicsEndPDFContext()
...