使用webkit中的webView在android中设置html到pdf打印的页边距

使用webkit中的webView在android中设置html到pdf打印的页边距,android,printing,html2pdf,Android,Printing,Html2pdf,我有一个Android应用程序,它使用来自webkit和PrintDocumentAdapter的Android(Kotlin)webView将HTML呈现为PDF。打印页边距设置为@页,如下所示: @page { size: A4 portrait; margin: 20mm 15mm 20mm 15mm; } @media screen, print { html, body { width: 210mm; height: 294mm

我有一个Android应用程序,它使用来自webkit和PrintDocumentAdapter的Android(Kotlin)webView将HTML呈现为PDF。打印页边距设置为@页,如下所示:

@page {
    size: A4 portrait;
    margin: 20mm 15mm 20mm 15mm;
}

@media screen, print {
    html, body {
        width: 210mm;
        height: 294mm;
    }

    page {
        box-shadow: 0;
        display: block;
    }

}

由于以下参考,我添加了和高度。但缺少宽度不是这里的问题。 直到最近的Chrome for Android更新(78.0.3904.62)之前,生成的html确实完美地呈现在ISO A4 pdf中,具有所需的边距。在Kotlin中使用以下PrintAttributes时:

var attributes : PrintAttributes = PrintAttributes.Builder()
                .setMediaSize(PrintAttributes.MediaSize.ISO_A4)
                .setResolution(PrintAttributes.Resolution("pdf", "pdf", 150, 150))
                .setMinMargins(PrintAttributes.Margins.NO_MARGINS).build()
但在Chrome更新后,我们的应用程序会在所有四个面上生成边距为8厘米的PDF。我现在可以用px而不是mm来解决这个问题。但这似乎不是正确的解决方案。这是目前有效的html/css:

@page {
    size: A4 portrait;
    margin: 22px 20px 23px 21px;
}

@media screen, print {
    html, body {
        width: 210mm;
        height: 294mm;
    }

    page {
        box-shadow: 0;
        display: block;
    }

}
这是Android版Chrome中的一个bug还是我遗漏了一些重要的东西