zoukankan      html  css  js  c++  java
  • 浏览器打印58小票

    HTML+CSS 实现打印58小票

    预览:

    软硬件:

    58小票打印机、浏览器(已测谷歌浏览器、Edge浏览器、360浏览器完美支持;ie浏览器字体偏小。。。)

    代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>打印小票</title>
        <style>
            @media print,
            screen {
                body {
                    margin: 0;
                    padding: 0;
                }
    
                #print {
                    font-size: 10px;
                }
    
                #print hr {
                    border: none;
                    border-top: 1px dashed #000000;
                }
    
                #print p {
                    margin-bottom: 0;
                    margin-top: 3px;
                }
    
                #print p>img {
                    width: 100%;
                }
    
                #print>div:first-of-type p:first-child {
                    font-size: 25px;
                    text-align: center;
                    font-weight: bold;
                    margin-bottom: 10px;
                }
    
                #print>div:nth-of-type(2)>div table {
                    width: 100%;
                    text-align: center;
                }
    
                #print>div:nth-of-type(2)>div p:first-child {
                    font-weight: bold;
                    text-align: center;
                }
    
                #print>div:nth-of-type(2)>div:last-child td:first-child {
                    float: left;
                }
    
                #print>div:nth-of-type(2)>div:last-child td:last-child {
                    float: right;
                }
    
                #print>div:last-of-type p:first-of-type,
                #print>div:last-of-type p:nth-of-type(2) {
                    text-align: center;
                }
            }
    
            @media screen {
                .print {
                    position: fixed;
                    top: 50%;
                    right: 0;
                    padding: 10px;
                    cursor: pointer;
                    transform: translateX(50%);
                    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
                    transition: all 0.5s linear;
                    color: rgba(255, 0, 0, 0.5);
                }
    
                .print:hover {
                    transform: translateX(0) scale(1.1, 1.1);
                }
            }
        </style>
    </head>
    
    <body>
        <span class="print" onclick="printView()">打印小票</span>
        <!--startprint-->
        <div id="print">
            <div>
                <p>XXX菜品发货单</p>
                <p><img id="barcode" alt="条形码" /></p>
            </div>
    
            <div>
                <div>
                    <p>订单信息</p>
                    <hr />
                    <p>订单编号:20210112000013</p>
                    <p>下单时间:2020-01-12 09:59:00</p>
                    <p>用户:白開水</p>
                    <p>联系方式:18234567890</p>
                </div>
    
                <div>
                    <p>配送信息</p>
                    <hr />
                    <p>配送时间:2020-01-12 即买即送</p>
                    <p>地址:杭州市,拱墅区,福祥街道,景瑞申花壹号院xxx幢xxx室</p>
                    <p>备注:</p>
                </div>
    
                <div>
                    <p>商品明细</p>
                    <hr />
                    <table>
                        <thead>
                            <tr>
                                <td>商品名称</td>
                                <td>数量</td>
                                <td>单价</td>
                                <td>小计</td>
                            </tr>
                        </thead>
                        <!-- 商品明细 -->
                        <tbody>
                            <tr>
                                <td>绍三鲜</td>
                                <td>1</td>
                                <td>28</td>
                                <td>28</td>
                            </tr>
                            <tr>
                                <td>腰果鸡丁</td>
                                <td>1</td>
                                <td>15</td>
                                <td>15</td>
                            </tr>
                            <tr>
                                <td>酸菜鱼</td>
                                <td>1</td>
                                <td>28</td>
                                <td>28</td>
                            </tr>
                        </tbody>
                    </table>
                </div>
    
                <div>
                    <p>合计</p>
                    <hr />
                    <table>
                        <tbody>
                            <tr>
                                <td>件数</td>
                                <td>3</td>
                            </tr>
                            <tr>
                                <td>商品金额</td>
                                <td>71</td>
                            </tr>
                            <tr>
                                <td>运费</td>
                                <td>5</td>
                            </tr>
                            <tr>
                                <td>优惠券</td>
                                <td>0</td>
                            </tr>
                            <tr>
                                <td>活动优惠</td>
                                <td>0</td>
                            </tr>
                            <tr>
                                <td>特权减免</td>
                                <td>0.71</td>
                            </tr>
                            <tr>
                                <td>实付金额</td>
                                <td>75.29</td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
    
            <div>
                <hr />
                <p>客服电话:400 888 8888</p>
                <p>感谢惠顾,欢迎再次光临!</p>
                <p><img src="https://res.wx.qq.com/wxdoc/dist/assets/img/WXACode.fa3d686a.png" alt="小程序码"></p>
            </div>
        </div>
        <!--endprint-->
        <script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.0/dist/JsBarcode.all.min.js"></script>
        <script>
            JsBarcode("#barcode", "20210112000013", {
                height: 80,
                displayValue: false,
                marginTop: 3,
                marginBottom: 5
            });
    
            function printView() {
                var bodyHtml = window.document.body.innerHTML;
                var startTagStr = '<!--startprint-->'; //开始打印标识字符串有17个字符
                var endTagStr = '<!--endprint-->'; //结束打印标识字符串
                var printHtml = bodyHtml.substr(bodyHtml.indexOf(startTagStr) + 17);
                printHtml = printHtml.substring(0, printHtml.indexOf(endTagStr));
                window.document.body.innerHTML = printHtml; //把需要打印的指定内容赋给body.innerHTML
                window.print(); //调用浏览器的打印功能打印指定区域
                window.document.body.innerHTML = bodyHtml; //重新给页面内容赋值
            }
        </script>
    </body>
    
    </html>

    参考:

    条形码

    https://www.cnblogs.com/huangenai/p/6347607.html

    打印

    https://www.zhihu.com/question/31764117

    https://www.cnblogs.com/wyfeng1/p/14042613.html

    分情破爱始乱弃,流落天涯思别离。 如花似玉负情意,影如白昼暗自迷。 随风浮沉千叶落,行色匆匆鬓已稀。
  • 相关阅读:
    Asp.Net WebService 使用后来管理系统对接口方法进行公开控制
    ASP.NET使用NPOI加载Excel模板并导出下载
    VS2010 根据模型生成数据库 打开edmx.sql文件时 vs出现无响应的解决方案
    ASP.NET中Session简单原理图
    三层架构学习总结图
    备忘录
    帶編號漏洞列表
    pwn with glibc heap(堆利用手册)
    基于qemu和unicorn的Fuzz技术分析
    winafl 源码分析
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/14340559.html
Copyright © 2011-2022 走看看