Как настроить html файл для печати на термопринтере

Моя цель — печать этикеток размером 10 см x 6,5 см для продуктов. У меня есть принтер Zebra для печати этикеток. Я использовал Fast-reports для печати этикеток с помощью портативного устройства. Поскольку быстрые отчеты предназначены только для Net Framework, а не для Net CF, я использовал сокеты для обработки данных между КПК и ПК.

Настольные приложения трудно сделать стабильными для моего знания С#. Я PHP-разработчик. поэтому я подумал, что могу создавать этикетки с помощью HTML и CSS, поскольку штрих-коды также можно делать с помощью php.

Причина, по которой я задаю этот вопрос, заключается в том, что я не знаю, как отправить html-страницу на принтер и какие размеры следует использовать для 10 см x 6,5 см с пикселями для печати наилучшего качества.


person T. Cem Yılmaz    schedule 12.01.2014    source источник


Ответы (2)


Возможно, я немного запоздал с ответом, но в свое время я столкнулся с той же проблемой, и для выполнения того, что вы описываете, я подошел странным образом, который в конечном итоге сработал. Шаги, которые я описываю, не влияют на пользовательский интерфейс, но они отображают ваш HTML незаметно для пользователя.

  1. Отобразите HTML в Webview, который не будет виден пользователю, и установите 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
        }
    }
    
person i_ll_be_back    schedule 18.03.2021

Вам нужно будет настроить @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>
person dreamweaver    schedule 30.07.2018