コード例 #1
0
 private void Print()
 {
     if (TaxesText != null)
     {
         PrinterUtils.Print(TaxesText);
     }
 }
コード例 #2
0
        public static void onSelectedPrinter_PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (d is UcPrinterPanel target)
            {
                if (target.SelectedPrinter_Inner == null && e.NewValue is Printer vvv) // 控件外赋值初始值
                {
                    target.SetSelectedPrinter_Inner_Slient(vvv);
                    target.SelectedPaperSize_Inner = target.SelectedPrinter_Inner.PaperSizeList[0];
                    return;
                }

                if (e.NewValue != null && e.NewValue is Printer value && value.DisplayName == PrinterUtils.UpdateItem)
                {
                    // 选择了 刷新 项
                    var temp = PrinterUtils.GetPrinterList(isContainUpdateListItem: true);
                    target.PrinterList = PrinterUtils.PrinterOrderBy(printerList: temp, priorityPrinterList: target.PriorityPrinterList, priorityPaperList: target.PriorityPaperSizeList);
                    return;
                }

                if (target.SelectedPrinter_Inner != null)
                {
                    target.SelectedPaperSize_Inner = target.SelectedPrinter_Inner.PaperSizeList[0];
                }
            }
        }
コード例 #3
0
        void init()
        {
            if (string.IsNullOrWhiteSpace(PriorityPrinterListStr) == false)
            {
                this.PriorityPrinterList = PriorityPrinterListStr.Split(',').Select(i => i.Trim()).Where(i => string.IsNullOrWhiteSpace(i) == false).ToList();
            }
            else
            {
                this.PriorityPrinterList = new List <string>();
            }

            if (this.PrinterList == null)
            {
                this.PrinterList = PrinterUtils.PrinterOrderBy
                                   (
                    printerList: PrinterUtils.GetPrinterList(isContainUpdateListItem: true),
                    priorityPrinterList: this.PriorityPrinterList,
                    priorityPaperList: null // 斑马打印机无需设置纸张选项
                                   );
            }

            if (this.SelectedPrinter == null)
            {
                var defaultPrinterName = PrinterUtils.GetDefaultPrinterName();
                var match = this.PrinterList.FirstOrDefault(i => i.DisplayName == defaultPrinterName); // 设置选中默认打印机
                if (match != null)
                {
                    this.SelectedPrinter_Inner = match;
                }
            }
        }
コード例 #4
0
        public static void PrintEtiqueta(EtiquetaModel etiqueta, int qtd, string printer)
        {
            StringBuilder sb = new StringBuilder();

            //sb.AppendLine("Q832");

            sb.AppendLine("R0,0");
            sb.AppendLine("N");
            sb.AppendLine("D11");
            sb.AppendLine("ZB");

            for (int i = 0; i < etiqueta.Colunas; i++)
            {
                int startPos = (int)(i * (etiqueta.Width.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) + (i * etiqueta.Espacamento.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)));
                foreach (EEModel element in etiqueta.ElementModels)
                {
                    switch (element.Tipo)
                    {
                    case Enums.EEType.BarCode:
                        sb.AppendLine($"B{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{Funcoes.GetBarcodeParam(element.TipoCodBarras)},{2 * element.Scale},{2 * element.Scale},{element.Altura.CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(element.ShowHumanCode ? "B" : "N")},\"{element.Texto}\"");
                        break;

                    case Enums.EEType.Texto:
                        sb.AppendLine($"A{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{element.TamanhoFonte},{1},{1},N,\"{element.Texto}\"");
                        break;

                    case Enums.EEType.PrecoMascarado:
                        sb.AppendLine($"A{startPos + ((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi)},{(int)element.Rotacao},{element.TamanhoFonte},{1},{1},N,\"{element.Texto}\"");
                        break;

                    case Enums.EEType.Linha:
                        bool invert  = (element.Rotacao == Enums.ElementRotation.ROT90 || element.Rotacao == Enums.ElementRotation.ROT270);
                        int  altura  = invert ? (int)((element.Scale * 6).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) : (int)((element.Altura).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi));
                        int  largura = !invert ? (int)((element.Scale * 6).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi)) : (int)((element.Altura).CmToPoints() * GetDpiMultiplier(etiqueta.Dpi));
                        int  x       = startPos + (int)(((double)element.X).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi));
                        int  y       = (int)(((double)element.Y).PixelsToPoints() * GetDpiMultiplier(etiqueta.Dpi));
                        if (element.Rotacao == ElementRotation.ROT270)
                        {
                            y = y - altura;
                        }
                        sb.AppendLine($"LO{x},{y},{largura},{altura}");
                        break;

                    default:
                        throw new NotImplementedException("Elemento não implementado!");
                    }
                }
            }
            int rows = (qtd + etiqueta.Colunas - 1) / etiqueta.Colunas;

            sb.AppendLine($"P{rows}");
            sb.AppendLine("N");

            PrinterUtils.PrintRaw(printer, sb.ToString());
        }
コード例 #5
0
 private void btnSettings_Click(object sender, EventArgs e)
 {
     PrinterUtils.ShowPropertiesDialog(FPrinterSettings);
 }
コード例 #6
0
 public bool PrintRaw(string data)
 {
     PrinterUtils.PrintRaw(this.printerName, data);
     return(true);
 }