Swift PDF 渲染任何 UIView 或 UIViewController PDFKit
Swift PDF render any UIView or UIViewController PDFKit
我做了一些研究,我发现我可以用 PDFKit
库绘制图像、字符串、形状。有什么简单的方法可以在 PDF 文档中绘制 UIView
或 UIViewController
的视图吗?
我更喜欢 Swift 的答案,但我也会接受 Objective-C。
UIView 以及包含在 UIViewController 中的视图,可以用图层渲染:
获取上下文:
let context = UIGraphicsGetCurrentContext()!
用户界面视图:
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()
我做了一些研究,我发现我可以用 PDFKit
库绘制图像、字符串、形状。有什么简单的方法可以在 PDF 文档中绘制 UIView
或 UIViewController
的视图吗?
我更喜欢 Swift 的答案,但我也会接受 Objective-C。
UIView 以及包含在 UIViewController 中的视图,可以用图层渲染:
获取上下文:
let context = UIGraphicsGetCurrentContext()!
用户界面视图:
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()