在将每个UIView转换为NSMutableData时调整/缩放PDF页面

时间:2018-03-06 09:22:06

标签: ios swift uiview uigraphicscontext uigraphicsrenderer

我有这个简单的函数接受一个UIViews数组,它们的大小相同,基本上可以接受大视图或小视图。然后该函数负责将每个UIView缩放为612 x 792维度。

如何通过适当的视图缩放实现此目的?我现在所拥有的只是简单地将视图插入到612 x 792 pdf页面中,这导致每个UIViews被剪裁在右侧。

以下是代码:

func resize(pages: [UIView]) -> NSMutableData {
    let a4 = CGSize(width: 612, height: 792)

    let pdfData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, CGRect(x:0, y:0, width:a4.width, height: a4.height), nil)
    for _view in pages {
        if let view = _view as? UIView {
            UIGraphicsBeginPDFPageWithInfo(view.bounds, nil)
            UIGraphicsGetCurrentContext()!.saveGState()

            let pdfContext = UIGraphicsGetCurrentContext()!
            view.layer.render(in: pdfContext)
            UIGraphicsGetCurrentContext()!.restoreGState()
        }

    }

    UIGraphicsEndPDFContext()

    return pdfData
}

0 个答案:

没有答案