Я предполагаю, что вам нужна тонкая линия, иначе вы бы не установили ширину в 1px.
Ключ к тому, чтобы в PDF-файлах, созданных с помощью wkhtmltopdf, отображались тонкие, заштрихованные границы, заключается в следующем:
.hairline-border {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><rect x='0' y='0' width='100%' height='100%' stroke='black' fill='white' stroke-opacity='1' /></svg>");
}
Для разделителя волос (думаю, <hr>
) я использую:
.hairline {
height: 0.5mm;
width: 100%;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><line x1='0mm' y1='0mm' x2='300mm' y2='0mm' style='stroke:black; stroke-width:0.25mm;' /></svg>");
}
и я использую их так:
<div class="hairline-border"></div>
И он корректно отображается в Firefox и Safari / Chrome, и wkhtmltopdf по крайней мере сохраняет ширину линии такой, какая она есть.
Было обсуждение, что преобразование SVG в base64 гарантирует большую совместимость с IE. Честно говоря, мне было все равно, доволен ли IE или нет, но, если нужно, посмотрите Встроенный SVG в CSS .