【问题标题】:How to setup html file for printing with thermal printer如何设置 html 文件以使用热敏打印机进行打印
【发布时间】:2014-01-31 11:33:47
【问题描述】:
我的目标是为产品打印 10 厘米 x 6.5 厘米的标签。我有一台用于打印标签的 Zebra 打印机。我正在使用手持设备打印标签的快速报告。由于快速报告仅适用于 Net Framework 而不适用于 Net CF,因此我使用套接字来处理手持设备和 pc 之间的数据。
根据我对 c# 的了解,桌面应用程序很难稳定。我是一名 PHP 开发人员。所以我想我可以用 HTML 和 CSS 创建标签,因为条形码也可以用 php 完成。
我问这个问题的原因是因为我不知道如何将 html 页面发送到打印机以及我应该使用什么尺寸的 10cm x 6.5cm 像素以获得最佳打印质量。
【问题讨论】:
标签:
php
html
printing
thermal-printer
【解决方案1】:
回复可能有点晚了,但我当时面临着完全相同的问题,为了完成你所描述的事情,我以一种最终奏效的奇怪方式接近了。我描述的步骤不会影响 UI,但它会在用户不注意的情况下呈现您的 HTML。
-
在用户不可见的 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());
-
在您的 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
}
}
【解决方案2】:
您需要设置@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>