代码之家  ›  专栏  ›  技术社区  ›  Ubdus Samad

打印html文档时出现左边距问题

  •  0
  • Ubdus Samad  · 技术社区  · 7 年前

    所以我试着通过POS(Thermal)打印机打印一个自动生成的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浏览器中看起来不错,但在打印预览中不好。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Obsidian Age    7 年前

    你有一个CSS margin 属于 1cm @page 媒体查询。

    删除此项将使文本向左移动(并将其向上移动一点)。
    如果您仍然需要上边距,可以将其更改为 margin-top 相反。

        2
  •  1
  •   Nishant Ranjan    7 年前

    你应该用 @media print 而不是 @page

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