如何设置HTML文件以便使用热敏打印机打印

6
我的目标是打印10cm x 6.5cm的产品标签。我有一台Zebra打印机用于打印标签。我曾经使用Fast-reports通过手持设备打印标签,但是由于Fast-reports只针对Net Framework而不是Net CF,所以我使用了sockets在手持设备和电脑之间传输数据。
对于我来说,桌面应用程序很难保持稳定,因为我对c#的了解有限。我是一个PHP开发人员,因此我想可以使用HTML和CSS创建标签,因为条形码也可以使用PHP完成。
我提出这个问题的原因是因为我不知道如何将HTML页面发送到打印机,并且我需要知道在像素方面应该使用什么样的尺寸才能实现最佳质量的10cm x 6.5cm打印。
2个回答

1
可能有点晚回复,但我曾经也遇到过完全相同的问题,为了实现你所描述的功能,我采用了一种奇怪的方法,最终成功了。我描述的步骤不会影响用户界面,但它可以在不被用户注意的情况下呈现您的HTML。
  1. Render the HTML on a Webview that won't be visible to the user and set a WebViewClientCallback that will be called as soon that your WebViewRenders your 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. In you webviewClient callback override the OnPageFinished method that will

    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
        }
    }
    

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接