Swift PDF呈现任何UIView或UIViewController PDFKit

时间:2019-06-24 18:19:47

标签: swift ios-pdfkit apple-pdfkit

我进行了一些研究,发现可以使用PDFKit库绘制图像,字符串,形状。有没有简单的方法可以在PDF文档中绘制UIView或UIViewController的视图?

我更喜欢Swift的答案,但是我也会接受Objective-C。

1 个答案:

答案 0 :(得分:0)

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()