Проблема с левым полем при печати HTML-документа - PullRequest
1 голос
/ 24 июня 2019

Итак, я пытаюсь напечатать автоматически сгенерированную HTML-страницу через мой POS (Thermal) принтер, мое приложение написано на 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; маргис} и т.д. безрезультатно.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Вы должны использовать @media print вместо @page медиазапроса для стиля.

@media print { body { margin: 1cm; } }
1 голос
/ 24 июня 2019

У вас есть CSS margin из 1cm в вашем @page медиа-запросе.
Это относится только к печати и отвечает за ваше левое поле.

Удаление этого приведет к тому, что ваш текст сместится влево (и немного переместит его вверх по странице).
Если вы все еще хотите использовать верхнее поле, вы можете изменить его на margin-top.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...