You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.5 KiB
100 lines
3.5 KiB
using BBWY.Client.APIServices;
|
|
using BBWY.Client.Models.FallWare;
|
|
using BBWY.Client.Models;
|
|
using BBWY.Controls;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Shapes;
|
|
using WebSocketSharp;
|
|
using BBWY.Client.Helpers;
|
|
using System.Printing;
|
|
using System.Reflection;
|
|
using System.IO;
|
|
using System.Threading;
|
|
|
|
namespace BBWY.Client.Views.FallWare
|
|
{
|
|
/// <summary>
|
|
/// SetCloudWareBoxWindow.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class SetCloudWareBoxWindow : BWindow
|
|
{
|
|
public SetCloudWareBoxWindow(JDWareBoxModel model, WareType wareType)
|
|
{
|
|
|
|
WareType = wareType;
|
|
JDWareBoxModel = model;
|
|
InitializeComponent();
|
|
PurchaseOrderImage = MyPrintHelper.GetBarcodeImageV2(model.PurchaseOrder, 420, 50);
|
|
this.DataContext = this;
|
|
this.Dispatcher.Invoke(() => {
|
|
tb_printcount.Text = "1";
|
|
});
|
|
this.UpdateLayout();
|
|
|
|
}
|
|
public JDWareBoxModel JDWareBoxModel { get; set; }
|
|
/// <summary>
|
|
/// 采购单号条形码
|
|
/// </summary>
|
|
public BitmapImage PurchaseOrderImage { get; set; }
|
|
public WareType WareType { get; set; }
|
|
|
|
public void PrintBox(string printName)
|
|
{
|
|
var localPrintServer = new LocalPrintServer();
|
|
if (string.IsNullOrEmpty(printName))
|
|
{
|
|
return;
|
|
}
|
|
var printQueue = localPrintServer.GetPrintQueue(printName);
|
|
if (printQueue.IsInError)
|
|
{
|
|
System.Windows.MessageBox.Show("打印机处于错误状态");
|
|
return;
|
|
}
|
|
MyPrintHelper.SetDefaultPrint(printName);//设置默认打印机
|
|
PrintDialog printDialog = new PrintDialog();
|
|
printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;//设置为横向打印 PageOrientation.Landscape Portrait为纵向
|
|
var pageWidth = (int)Math.Ceiling(printDialog.PrintableAreaWidth);
|
|
var pageHeight = (int)Math.Ceiling(printDialog.PrintableAreaHeight);
|
|
printDialog.PrintTicket.PageMediaSize = new PageMediaSize(pageWidth, pageHeight);
|
|
|
|
|
|
this.Height = pageHeight + 39;
|
|
this.Width = pageWidth;
|
|
this.FontSize = 30;
|
|
box_margin.Margin = new Thickness(50, 50, 50, 50);
|
|
this.jd_box.Arrange(new Rect(new Point(0, 0), new Size(pageWidth, pageHeight)));
|
|
for (int i = 1; i <= JDWareBoxModel.BoxCount; i++)
|
|
{
|
|
this.Dispatcher.Invoke(() => {
|
|
tb_printcount.Text =i.ToString();
|
|
});
|
|
this.Dispatcher.Invoke(() => {
|
|
this.UpdateLayout();
|
|
});
|
|
|
|
|
|
|
|
printDialog.PrintVisual(this.jd_box, "打印任务");
|
|
}
|
|
var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
|
string printNames = System.IO.Path.Combine(applicationPath, "printName.init");
|
|
if (File.Exists(printNames))
|
|
{
|
|
File.Delete(printNames);
|
|
}
|
|
System.IO.File.WriteAllText(printNames, printName);
|
|
this.Close();
|
|
}
|
|
}
|
|
}
|
|
|