UIPrintPageRenderer, как переключаться между форматом US-Letter и DIN-A4

Я пытался реализовать пользовательский PDF-рендерер, унаследованный от UIPrintPageRenderer. Моя проблема заключается в том, что размер выходного документа PDF составляет 215,9 x 279,4 мм. Но правильные размеры DIN A4 мне нужны 210 х 297 мм. Очевидно, я получаю размер письма США вместо DIN A4. Как я могу изменить его на DIN A4?

...
class PDFRenderer: UIPrintPageRenderer
{
    private let A4PageWidth : Double = 595.2
private let A4PageHeight : Double = 841.8
private let leftPadding: CGFloat = 18.0;

override init()
{
    super.init()

    let pageFrame : CGRect = CGRect(x: 0, y: 0, width: A4PageWidth, height: A4PageHeight)
...

Спасибо

1 ответ

Решение

Я думаю, что вы используете неправильный прямоугольник при вызове метода drawPage для вашего pdfRenderer.

во многих примерах показано что-то вроде этого:

pdfRenderer.drawPage(at: i, in: UIGraphicsGetPDFContextBounds()) 

используйте прямоугольник для формата A4 вместо UIGraphicsGetPDFContextBounds()

например, CGRect.init(x: 0, y: 0, ширина: 595,2, высота: 841,8)

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