Нежелательное правое поле при создании PDF из WKWebView - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь сохранить текущий вид WKWebView в формате PDF.Это HTML-код, который загружается в веб-представление:

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title>PDF neve</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            body {
                border: 1px solid red;
            }

            div {
                height: 400px;
            }

        </style>
    </head>
    <body>
        <div>lorem</div>
    </body>
</html>

При правильном отображении граница тела переходит из стороны в сторону:

enter image description here

Однако, когда я генерирую PDF из этого WebView со следующим кодом:

class func generate() -> Data {

    // assign the print formatter to the print page renderer
    let renderer = UIPrintPageRenderer()
    let printFormatter = wkWebView.viewPrintFormatter()
    renderer.addPrintFormatter(printFormatter, startingAtPageAt: 0)

    // assign paperRect and printableRect values
    let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4, 72 dpi
    renderer.setValue(page, forKey: "paperRect")
    renderer.setValue(page, forKey: "printableRect")

    // create pdf context and draw each page
    let pdfData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, .zero, nil)

    for i in 0..<renderer.numberOfPages {
        UIGraphicsBeginPDFPage()
        renderer.drawPage(at: i, in: UIGraphicsGetPDFContextBounds())
    }

    UIGraphicsEndPDFContext();

    // save data to a pdf file and return
    guard nil != (try? pdfData.write(to: outputURL, options: .atomic))
        else { fatalError("Error writing PDF data to file.") }

    return pdfData as Data
}

В результате я получил это:

enter image description here

Обратите внимание на проблему с границей / интервалом справа.Есть идеи, что может вызвать это?

...