如何使用热敏打印机设置html文件进行打印

时间:2014-01-12 19:21:29

标签: php html printing thermal-printer

我的目标是为产品打印10厘米x 6.5厘米的标签。我有一台用于打印标签的Zebra打印机。我使用手持设备使用快速报告打印标签。由于快速报告仅适用于Net Framework而不适用于Net CF,因此我使用套接字来处理手持设备和PC之间的数据。

桌面应用程序很难让我对c#的了解变得稳定。我是PHP开发者。所以我想我可以用HTML& CSS,因为条形码也可以用PHP完成。

我问这个问题的原因是因为我不知道如何将html页面发送到打印机以及我应该使用10cm x 6.5cm的像素以获得最佳质量的打印。

2 个答案:

答案 0 :(得分:1)

回复可能有点晚了,但我当时正面临着完全相同的问题,为了完成您所描述的事情,我以一种最终奏效的奇怪方式进行了处理。我描述的步骤不会影响 UI,但它会在用户不注意的情况下呈现您的 HTML。

  1. 在用户不可见的 Web 视图上呈现 HTML,并设置一个 WebViewClientCallback,该回调将在您的 WebView 呈现您的 html 时立即调用。

    var webview = new Android.Webkit.WebView(Common.Instance);
    webview.Layout(0, 0, widthOfHTML, heightOfHtml);
    webview.Settings.LoadWithOverviewMode = true;
    webview.Settings.UseWideViewPort = true;
    webview.LoadDataWithBaseURL("file:///android_asset/", template, "text/HTML", "UTF-8", null);
    webview.SetWebViewClient(new WebViewClientCallback());
    
  2. 在你的 webviewClient 回调中重写 OnPageFinished 方法

    public class WebViewClientCallback : WebViewClient
    {
        public override async void OnPageFinished(WebView myWebview, string url)
        {
             // Render webview to a bitmap
             var bitmap = Bitmap.CreateBitmap(myWebview.Width, myWebview.Height + 50, Bitmap.Config.Argb8888);
    
             // Code to print bitmap
        }
    }
    

答案 1 :(得分:0)

设置完@media print { YOUR CSS STYLES }后,您需要设置它在打印时的外观。确保将您的 cm 转换为 pt,px,em或rem 之一。然后,您可以在按钮上添加一些javascript,以使其在打印视图中打开,否则,您只需右键单击html页面并告诉它进行打印。使用javascript这样的内容:

<button onclick="myFunction()">Print this page</button>

<script>
function myFunction() {
    window.print();
}
</script>