Размер бумаги UIPrintPageRenderer не меняется

Я пытаюсь преобразовать некоторый HTML в документ PDF, чтобы сохранить его на моем сервере. Однако я не могу установить размер бумаги средства визуализации печати. Размер бумаги всегда остается A4, даже когда я меняю «paperRect» — мне нужен размер бумаги A6. Любые идеи?

let pageFrame = CGRect(x: 0.0, y: 0.0, width: 595.2, height: 600)

// Set the page frame.
self.setValue(NSValue(cgRect: pageFrame), forKey: "paperRect")

person Tom Fox    schedule 09.02.2018    source источник
comment
Отвечает ли это на ваш вопрос? Как установить размер юридической страницы для PDF создан с помощью UIPrintPageRenderer?   -  person user4157124    schedule 06.05.2020


Ответы (2)


Попробуйте использовать UIGraphicsPDFRenderer вместо UIPrintPageRenderer. Вы можете создавать страницы с нестандартными размерами, используя функцию beginPage(withBounds:pageInfo:)

let pdf = renderer.pdfData { (context) in
    context.beginPage(withBounds: CGRect(x: 0.0, y: 0.0, width: 595.2, height: 600), pageInfo: [:])

    drawYourHTML(on: context) // Implement this function like what you want

}
person user9335240    schedule 09.02.2018

Вы делаете это правильно, устанавливая paperRect. Однако вы, возможно, вызвали UIGraphicsBeginPDFPage() по умолчанию для настройки каждой страницы, которая использует значения по умолчанию, такие как размер бумаги A4. Попробуйте вместо этого использовать UIGraphicsBeginPDFPageWithInfo(paperRect, nil), так как у вас уже есть paperRect.

Ссылка: https://developer.apple.com/documentation/uikit/1623915-uigraphicsbeginpdfpagewithinfo< /а>

person xnth97    schedule 18.07.2020