使用webkit中的webView在android中设置html到pdf打印的页边距
我有一个Android应用程序,它使用来自webkit和PrintDocumentAdapter的Android(Kotlin)webView将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
@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还是我遗漏了一些重要的东西