6

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

根据我对 c# 的了解,桌面应用程序很难稳定。我是一名 PHP 开发人员。所以我想我可以用 HTML 和 CSS 创建标签,因为条形码也可以用 php 完成。

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

4

2 回答 2

1

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

  1. 在用户不可见的 Webview 上呈现 HTML,并设置 WebViewClientCallback,一旦您的 WebViewRenders 您的 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
        }
    }
    
于 2021-03-18T12:33:46.630 回答
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>
于 2018-07-30T19:19:42.553 回答