Размер бумаги в 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

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