Размер бумаги в UIPrintPageRenderer не меняется
Я пытаюсь преобразовать некоторый HTML в документ PDF, чтобы сохранить его на своем бэкэнде. Однако я не могу установить размер бумаги для средства печати. Размер бумаги всегда остается А4, даже когда я изменяю "paperRect" - мне нужно, чтобы размер бумаги был А6. Есть идеи?
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")
1 ответ
Попробуйте использовать 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
}
Вы делаете это правильно, устанавливая paperRect
. Однако вы, возможно, назвали значение по умолчаниюUIGraphicsBeginPDFPage()
для настройки каждой страницы, которая использует значения по умолчанию, такие как размер бумаги A4. Попробуйте использоватьUIGraphicsBeginPDFPageWithInfo(paperRect, nil)
вместо этого, поскольку у вас уже есть paperRect
.
Ссылка: https://developer.apple.com/documentation/uikit/1623915-uigraphicsbeginpdfpagewithinfo