打印html文档时的左边距问题

时间:2019-06-23 21:45:14

标签: html css printing pyqt5

因此,我试图通过POS(热)打印机打印自动生成的HTML页面,我的应用程序是用PyQt5编写的,我戴着一个骇人的python脚本来生成HTML代码,但是在打印预览中这是一个巨大的空白页边距,并且打印后也出现在纸张上。我无法通过窗口调整左页边距,我所能做的就是编辑html代码以解决该问题。这是生成的html代码:

<!DOCTYPE html><head><title> Recipt #12345678 </title>
<style>
html,body  {font-family: "Fake Receipt", sans-serif;white-space:nowrap;}
@page {
    margin: 1cm;
}
</style>
</head><body><h3 >Dyestuff</h3>
        <p >Colours, Threads & Chemicals <br/>
        some@gmail.com |  <b>+91 00000000000</b><br/>
        <b>GSTIN</b>-000000000000000000 <br/>
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p><hr/><h8><b>Transaction Id</b></h8>:  1561324761<br/><h8><b>Date</b></h8>:  Mon Jun 24 02:49:21 2019<br/><h8><b>Billed by</b></h8>:  admin<br/><h8><b>Payment Type</b></h8>:  current<br/><h8><b>Total Amount</b></h8>:  637.1759999999999<br/><h8><b>Client</b></h8>:  0<br/><br/><hr/><table ><tr><th>Product</th><th>HSN</th><th>Qty(U)</th><th>Rate/U</th><th>Tax</th><th>Total</th></tr><tr><td>Magenta Dark</td><td>GTI4</td><td>6.458Kgs</td><td>60</td><td>77.49600000000001</td><td>464.976</td></tr><tr><td>Normal Green</td><td>CAB8</td><td>8.2Kgs</td><td>20</td><td>8.200000000000001</td><td>172.2</td></tr></td></tr></table>
<br/><br/>
<b>GRAND TOTAL: </b>637.1759999999999 Rupees
<p  style='font-size:10px;'><b>Note:</b> The grand total amt is inclusive of all taxes.</br>
Incase of any glitch in amount,tax,etcetera, contact the seller.</p>
</body></html>

右边距看起来像这样(注意:由于空白,没有右边距):

Image showing huge left margin and no right margin

所以,我只是想提出一些建议,以修复HTML代码以使其正常工作。

  

注意:该页面在html浏览器中看起来不错,但在打印预览中却不好。

我尝试了@page {size:w h; margis}等都无济于事。

2 个答案:

答案 0 :(得分:1)

您的 @page 媒体查询中的CSS margin1cm
这仅适用于打印,并负责您的左边距。

删除此选项会将您的文本移到左侧(也将其向上移一点)。
如果您仍然想要顶部边距,则可以将其更改为margin-top

答案 1 :(得分:1)

您应使用@media print而不是@page媒体查询来进行样式设置。

@media print { body { margin: 1cm; } }