我的目标是为产品打印10厘米x 6.5厘米的标签。我有一台用于打印标签的Zebra打印机。我使用手持设备使用快速报告打印标签。由于快速报告仅适用于Net Framework而不适用于Net CF,因此我使用套接字来处理手持设备和PC之间的数据。
桌面应用程序很难让我对c#的了解变得稳定。我是PHP开发者。所以我想我可以用HTML& CSS,因为条形码也可以用PHP完成。
我问这个问题的原因是因为我不知道如何将html页面发送到打印机以及我应该使用10cm x 6.5cm的像素以获得最佳质量的打印。
答案 0 :(得分:1)
回复可能有点晚了,但我当时正面临着完全相同的问题,为了完成您所描述的事情,我以一种最终奏效的奇怪方式进行了处理。我描述的步骤不会影响 UI,但它会在用户不注意的情况下呈现您的 HTML。
在用户不可见的 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());
在你的 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>