我有一个HTML生成器,该生成器生成用于转换为多种格式的代码。该生成器应该产生最少的css,因为文件将仅用于此。
在服务器内部,我正在无头运行LibreOffice,并且该服务运行良好,从某种意义上说,我给了它一个文件,并且还给了我转换后的版本。但是,对于硬编码宽度设置为100%的图像和表格,它们从左侧开始,正确定位在左侧边距之后,却越过右侧边距,我遇到了问题。
到现在为止,我一直在理解这是一个CSS问题,并且可以像打印一样工作(在浏览器中打开并打印时HTML看起来很完美)。
这是我最初的CSS:
@page {
size: 21cm 29.7cm;
margin: 1cm;
}
@media print {
html, body {
height: 100%;
width: 27.7cm;
margin: 0;
padding: 0;
overflow: hidden;
}
body > * {
max-width: 100%;
}
}
有趣的是,这些段落的边距看起来不错。我以为LibreOffice会使用“打印”来指导其转换可能是错误的,但是@page绝对可以正常工作(除了它可以理解度量单位,但不能识别“合法”之类的尺寸名称)。
有什么想法吗?