Изменение размера / масштабирование PDF-страниц при преобразовании каждого UIView в NSMutableData

У меня есть эта простая функция, которая принимает массив UIViews, которые имеют одинаковые размеры, которые в принципе могут принимать либо большие или меньшие представления. Тогда функция будет отвечать за масштабирование каждого UIView в размеры 612 x 792.

Как я могу добиться этого при правильном масштабировании вида? То, что у меня есть сейчас, - это просто вставить представления в страницы PDF размером 612 x 792, что приводит к обрезанию каждого 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 ответов

Другие вопросы по тегам