0

小さなレシート形式を生成するWebアプリケーションがあります。
ジェネリック/txtプリンターに印刷した場合..シートには何も印刷されません

これが印刷物のサンプルです。 削除されました

このウェブページをgeneric/txtプリンターに印刷する方法はありますか

これがhtmlです

        <style>
    body{
        font-family:"Courier New", Courier, monospace;  
        font-size:13px;
    }
    .f1{
        text-transform:uppercase;
        display:block;
        text-align:center;
    }

    .f2{
        text-transform:uppercase;
        display:block;
        margin-left:10px;
    }

    .border_bottom{
        border-bottom:2px dashed #000;
    }
    .border_top{
        border-top:2px dashed #000;
    }

    .body_table{
        border:1px dashed #CCCCCC;
        padding:.5em;
    }
    </style>
    </head>

    <body onload="window.print();">
    <table width="300" cellpadding="0" cellspacing="0" class="body_table">
        <tr>
            <td><span class="f1">Official Receipt</span></td>
        </tr>
        <tr>
            <td><span class="f1">DreamWorks Pharmaceutical Industries Limited GH.</span></td>
        </tr>
        <tr>
            <td><span class="f1">Plot 14 Blk 8A</span></td>
        </tr> 
    <tr>
            <td class="border_bottom"><span class="f1">0241093621</span></td>
        </tr>   


    <tr>
            <td class=""><span class="f2">RECEIPT NO.: 0241093621</span></td>
        </tr>     

    <tr>
            <td class=""><span class="f2">VAT REG #.: </span></td>
        </tr>

    <tr>
            <td class=""><span class="f2">cashier.: </span></td>
        </tr> 

    <tr>
            <td class=""><span class="f2">date.:  time: </span></td>
        </tr>

    <tr>
            <td class="border_bottom"><span class="f2">customer.:  time: </span></td>
        </tr>

    <tr>
        <td>
            <table width="98%" align="center" cellpadding="0" cellspacing="0">
                <tr>
                    <td width="5%"><span class="f2">QTY</span></td>
                    <td width="60%"><span class="f2">item</span></td>
                    <td width="15"><span class="f2">price</span></td>
                    <td width="15"><span class="f2">amt.</span></td>                
                </tr> 


                        <tr>
                        <td class="f2">52</td>
                        <td>MALAREX TABS</td>
                        <td>2.6</td>
                        <td>135.20</td>
                        </tr>
                                </table>
        </td>
    </tr> 
    <tr>
        <td class="border_top border_bottom">
        <table width="100%" cellpadding="0" cellspacing="0" align="left" id="print_table7"> 
                    <tr>
                        <Td class="ash_backg" width="53%"><span>Subtotal</span></Td>
                        <td width="47%" align="right">135.20</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Discount</span></Td>
                        <td align="right">0.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>VAT</span></Td>
                        <td align="right">0.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Total Due</span></Td>
                        <td align="right">135.20</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Paid</span></Td>
                        <td align="right">135.20</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Change</span></Td>
                        <td align="right">0.00</td>
                    </tr>                                                
                 </table>
        </td>
    </tr>  

    <tr>
        <td>Thank You dear customer</td>
    </tr>

    <tr>
        <td>VAT Inclusive Where Applicable</td>
    </tr>                           
    </table>
    </body>

これが領収書フォーマットのHTMLです

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/plain; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    @media screen{
        body{
            font-family:"Courier New", Courier, monospace;  
            font-size:13px;
        }
        .f1{
            text-transform:uppercase;
            display:block;
            text-align:center;
        }

        .f2{
            text-transform:uppercase;
            display:block;
            margin-left:10px;
        }

        .border_bottom{
            border-bottom:2px dashed #000;
        }
        .border_top{
            border-top:2px dashed #000;
        }

        .body_table{
            border:1px dashed #CCCCCC;
            padding:.5em;
        }   
    }

    @media print{
        body{
            font-family:"Courier New", Courier, monospace;  
            font-size:8px;
            width:250px;
        }
    }
    </style>
    </head>

    <body onload="window.print();">
    <table width="300" cellpadding="0" cellspacing="0" class="body_table">
        <tr>
            <td><span class="f1">Official Receipt</span></td>
        </tr>
        <tr>
            <td><span class="f1">DreamWorks Pharmaceutical Industries Limited GH.</span></td>
        </tr>
        <tr>
            <td><span class="f1">Plot 14 Blk 8A</span></td>
        </tr> 
    <tr>
            <td class="border_bottom"><span class="f1">0241093621</span></td>
        </tr>   


    <tr>
            <td class=""><span class="f2">RECEIPT NO.: 0241093621</span></td>
        </tr>     

    <tr>
            <td class=""><span class="f2">VAT REG #.: </span></td>
        </tr>

    <tr>
            <td class=""><span class="f2">cashier.: </span></td>
        </tr> 

    <tr>
            <td class=""><span class="f2">date.:  time: </span></td>
        </tr>

    <tr>
            <td class="border_bottom"><span class="f2">customer.:  time: </span></td>
        </tr>

    <tr>
        <td>
            <table width="98%" align="center" cellpadding="0" cellspacing="0">
                <tr>
                    <td width="5%"><span class="f2">QTY</span></td>
                    <td width="60%"><span class="f2">item</span></td>
                    <td width="15"><span class="f2">price</span></td>
                    <td width="15"><span class="f2">amt.</span></td>                
                </tr> 


                        <tr>
                        <td class="f2">6</td>
                        <td>MALAREX TABS</td>
                        <td>0</td>
                        <td>0</td>
                        </tr>

                        <tr>
                        <td class="f2">1</td>
                        <td>PARAFEN PLUS TAB.</td>
                        <td>0</td>
                        <td>0</td>
                        </tr>

                        <tr>
                        <td class="f2">5</td>
                        <td>ASTHAX INHALER</td>
                        <td>5</td>
                        <td>25</td>
                        </tr>
                                </table>
        </td>
    </tr> 
    <tr>
        <td class="border_top border_bottom">
        <table width="100%" cellpadding="0" cellspacing="0" align="left" id="print_table7"> 
                    <tr>
                        <Td class="ash_backg" width="53%"><span>Subtotal</span></Td>
                        <td width="47%" align="right">25.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Discount</span></Td>
                        <td align="right">0.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>VAT</span></Td>
                        <td align="right">0.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Total Due</span></Td>
                        <td align="right">25.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Paid</span></Td>
                        <td align="right">25.00</td>
                    </tr>
                    <tr>
                        <Td class="ash_backg"><span>Change</span></Td>
                        <td align="right">0.00</td>
                    </tr>                                                
                 </table>
        </td>
    </tr>  

    <tr>
        <td>Thank You dear customer</td>
    </tr>

    <tr>
        <td>VAT Inclusive Where Applicable</td>
    </tr>                           
    </table>
    </body>
    </html>
4

2 に答える 2

1

はい、上記のようにドキュメントを印刷できます。画面の表示と印刷には別のスタイルシートを使用する必要があります。CSSルールは次のとおりです。

@media screen
  {
  //Css
  }

@media print{
    @page { size:250px 375px; margin: 4px }
    body{font-family:"Courier New", Courier, monospace;  font-size:8px;}
    .f1{text-transform:uppercase; display:block; text-align:center;}
    .f2{text-transform:uppercase; display:block; margin-left:10px;}
    .border_bottom{ border-bottom:2px dashed #000;}
    .border_top{border-top:2px dashed #000;}
    .body_table{border:1px dashed #CCCCCC; padding:.5em;}
}

これらでは、ページサイズ、色、その他多くのことを説明できます。CSS印刷仕様をグーグルで検索すれば、さらに詳しく知ることができます。

しかし、私はあなたのすなわちそれを印刷するためにPOSプリンターを使用して印刷することに関係する別の問題を考えます。そのために私は方法を提案したいと思います:

インターフェイスで受け入れる干渉の量に応じて、2つの簡単な方法があります。

まず、JavaScriptを使用して、レシートページ/iframeをトリガーして印刷することができます。このオプションは、レジ係がシステムダイアログで印刷を確認する必要があるため、少し扱いに​​くいです。

ただし、第2に、ネットワーク上で各ステーションのプリンタを共有するオプションが常にあります。サーバー側のコンポーネントは、それに直接印刷できます。また、* nixサーバーの場合、各ステーションのプリンターがサーバーに追加/サーバーと共有されると、非常に簡単に実行できます。PHPの場合(CUPがインストールされていると思います):

// attempt to pipe to 'lp -d printername'
if (`echo "{$text}" | lp -d {$printer_name}`) {
    // print successful
    return true;
} else {
    // print failed
    return false;
}

2番目の方法として、Windowsサーバーを実行している場合は、おそらくはるかに複雑です。

于 2013-03-05T12:15:19.383 に答える
1

CSSメディアタイプを使用できます。1つを画面に使用して見栄えを良くし、もう1つを印刷に使用してわかりやすくします。

例えば:

@media screen
  {
  p.test {font-family:verdana,sans-serif;font-size:14px;}
  }
@media print
  {
  p.test {font-family:times,serif;font-size:10px;}
  }
于 2013-03-05T12:10:29.167 に答える