From fb7e3a864737b7b312f92e2cb55b1121f4365ef5 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Wed, 26 Jul 2023 14:38:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=89=93=E5=8C=85=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Client/BBWY.Client.csproj | 2 + BBWY.Client/BBWYAppSettings.json | 2 +- BBWY.Client/Extensions/ImageExtensions.cs | 47 +++ BBWY.Client/Helpers/MyPrintHelper.cs | 181 ++++----- BBWY.Client/Resources/Images/123.bmp | Bin 0 -> 15575 bytes .../Views/PackTask/PackDetailWindow.xaml | 375 +++++------------- .../Views/PackTask/PackDetailWindow.xaml.cs | 181 +++++++-- .../Views/PackTask/PrintPackTaskDetail.xaml | 141 +++++-- .../PackTask/PrintPackTaskDetail.xaml.cs | 83 +++- .../Views/PackTask/WareHouseListControl.xaml | 2 +- 10 files changed, 555 insertions(+), 459 deletions(-) create mode 100644 BBWY.Client/Extensions/ImageExtensions.cs create mode 100644 BBWY.Client/Resources/Images/123.bmp diff --git a/BBWY.Client/BBWY.Client.csproj b/BBWY.Client/BBWY.Client.csproj index e6f8759e..760a73f2 100644 --- a/BBWY.Client/BBWY.Client.csproj +++ b/BBWY.Client/BBWY.Client.csproj @@ -26,6 +26,7 @@ + @@ -35,6 +36,7 @@ Always + diff --git a/BBWY.Client/BBWYAppSettings.json b/BBWY.Client/BBWYAppSettings.json index e1b3dcff..34888905 100644 --- a/BBWY.Client/BBWYAppSettings.json +++ b/BBWY.Client/BBWYAppSettings.json @@ -5,5 +5,5 @@ "JOSApiHost": "", "1688ApiHost": "", "QKApiHost": "http://localhost:8080" - //"QKApiHost": "http://qiku.qiyue666.com" + // "QKApiHost": "http://qiku.qiyue666.com" } \ No newline at end of file diff --git a/BBWY.Client/Extensions/ImageExtensions.cs b/BBWY.Client/Extensions/ImageExtensions.cs new file mode 100644 index 00000000..876fe2bd --- /dev/null +++ b/BBWY.Client/Extensions/ImageExtensions.cs @@ -0,0 +1,47 @@ +using SixLabors.ImageSharp.Memory; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Media; +using System.Windows.Media.Imaging; + +namespace BBWY.Client.Extensions +{ + public static class ImageExtensions + { + public static BitmapImage ByteToBitmapImage(this byte[] imageData) + { + BitmapImage bitmapImage = new BitmapImage(); + try + { + + + using (MemoryStream memoryStream = new MemoryStream(imageData)) + { + bitmapImage.BeginInit(); + bitmapImage.CacheOption = BitmapCacheOption.OnLoad; + bitmapImage.StreamSource = memoryStream; + bitmapImage.EndInit(); + bitmapImage.Freeze(); + } + + return bitmapImage; + } + catch (Exception ex) + { + Debug.Print($"转换图片失败:: {ex.Message}"); + } + return bitmapImage; + } + + public static Image ByteToImage(this byte[] imageData) + { + using MemoryStream ms = new MemoryStream(imageData); + Image image = System.Drawing.Image.FromStream(ms); + return image; + } + } +} diff --git a/BBWY.Client/Helpers/MyPrintHelper.cs b/BBWY.Client/Helpers/MyPrintHelper.cs index 57442300..122219b2 100644 --- a/BBWY.Client/Helpers/MyPrintHelper.cs +++ b/BBWY.Client/Helpers/MyPrintHelper.cs @@ -11,9 +11,11 @@ using System.Drawing.Imaging; using System.Drawing.Printing; using System.IO; using System.Linq; +using System.Net.Http; using System.Reflection; using System.Runtime.InteropServices; using System.Text; +using System.Windows; using System.Windows.Media.Imaging; using WebSocketSharp; @@ -40,11 +42,11 @@ namespace BBWY.Client.Helpers //SetBarStander(barCode, ref args, font); break; case BarcodeLabelModel.精简模板: - //font = new Font("宋体", 10, System.Drawing.FontStyle.Regular); - ////SetBar(barCode, ref args, font, 15); + //font = new Font("宋体", 10, System.Drawing.FontStyle.Regular); + ////SetBar(barCode, ref args, font, 15); - //SetBarSimplify(barCode, ref args, font); - //break; + //SetBarSimplify(barCode, ref args, font); + //break; case BarcodeLabelModel.无型号模板: font = new Font("宋体", 10, System.Drawing.FontStyle.Regular); SetBar(barCode, ref args, font, 7); @@ -152,7 +154,7 @@ namespace BBWY.Client.Helpers //args.Graphics.DrawString($"品名: {barCode.BrandName}", font, System.Drawing.Brushes.Black, new PointF(10, 10)); //args.Graphics.DrawString($"规格: {barCode.SkuName}", font, System.Drawing.Brushes.Black, new PointF(10, 40)); - + args.Graphics.DrawString($"规格: {barCode.SkuName}", font, System.Drawing.Brushes.Black, new PointF(10, 10)); args.Graphics.DrawString($"店铺: {barCode.ShopName}", font, System.Drawing.Brushes.Black, new PointF(10, 40)); // g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; @@ -601,10 +603,19 @@ namespace BBWY.Client.Helpers public static BitmapImage GetBarcodeImage(string printStr, int width, int height) { Bitmap image = new Bitmap(width, height); - Graphics graphics2 = Graphics.FromImage(image); - Barcode barcode = new Barcode(); - System.Drawing.Image img = barcode.Encode(TYPE.CODE128, printStr, 500, 60); - graphics2.DrawImage(img, 0, 0, width, height); + try + { + Graphics graphics2 = Graphics.FromImage(image); + Barcode barcode = new Barcode(); + System.Drawing.Image img = barcode.Encode(TYPE.CODE128, printStr, 500, 60); + graphics2.DrawImage(img, 0, 0, width, height); + } + catch + { + MessageBox.Show($"生成条码失败,不支持格式: {printStr}"); + } + + return bitmapToBitmapImage(image); } @@ -618,10 +629,21 @@ namespace BBWY.Client.Helpers public static BitmapImage GetBarcodeImageV2(string printStr, int width, int height) { Bitmap image = new Bitmap(width, height); - Graphics graphics2 = Graphics.FromImage(image); - Barcode barcode = new Barcode(); - System.Drawing.Image img = barcode.Encode(TYPE.CODE128, printStr, width, height); - graphics2.DrawImage(img, 0, 0, width, height); + + + try + { + Graphics graphics2 = Graphics.FromImage(image); + Barcode barcode = new Barcode(); + System.Drawing.Image img = barcode.Encode(TYPE.CODE128, printStr, width, height); + graphics2.DrawImage(img, 0, 0, width, height); + } + catch + { + MessageBox.Show($"生成条码失败,不支持格式: {printStr}"); + } + + return bitmapToBitmapImage(image); } @@ -644,99 +666,12 @@ namespace BBWY.Client.Helpers - ///// - ///// 打印封箱 - ///// - ///// - ///// - ///// - ///// - //public static void PrintSealBoxData(SealBoxModel sealBoxModel, string printName, int boxCount, int printCount) - //{ - // // 100*180 - - // UnitConverHelper unitConverHelper = new UnitConverHelper(); - - // var data = unitConverHelper.MmToPx(100, 180); - // var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - // string printNamePath = $"{applicationPath}/printSealName.init"; - // if (File.Exists(printNamePath)) - // { - // File.Delete(printNamePath); - // } - // File.WriteAllText(printNamePath, printName); - - // var excel = $"{applicationPath}/Resources/ExccelModel/sealbox.xlsx"; - - // var newExccel = $"{applicationPath}/Resources/ExccelModel/newsealbox.xlsx"; - // if (File.Exists(newExccel)) - // { - // File.Delete(newExccel); - // } - // FileStream fs = new FileStream(excel, FileMode.Open, FileAccess.Read); - // XSSFWorkbook wb = new XSSFWorkbook(fs); - // var sheet = wb.GetSheetAt(0); // 得到第一个sheet - - // var nameCell = sheet.GetRow(0).GetCell(0); // name列,第2行 - // var ageCell = sheet.GetRow(3).GetCell(0); // age列,第2行 - - - // XSSFWorkbook wb2 = new XSSFWorkbook(); - // sheet.CopyTo(wb2, "Sheet1", true, false); - // var sheet2 = wb2.GetSheet("Sheet1"); - // var nameCell2 = sheet2.GetRow(0).GetCell(1); - // nameCell2.SetCellValue(sealBoxModel.ShopName); - - // sheet2.GetRow(3).GetCell(1).SetCellValue(sealBoxModel.WareName); - - // StringBuilder sb = new StringBuilder(); - // int totalCount = 0; - // for (int i = 0; i < sealBoxModel.SealBoxSkus.Count; i++) - // { - // var title = sealBoxModel.SealBoxSkus[i].SkuTitle; - // //if (title.Length>5) - // //{ - // // title = title.Substring(0,5); - // //} - // totalCount += sealBoxModel.SealBoxSkus[i].WareHourseSkuCount; - // sheet2.GetRow(i + 6).GetCell(1).SetCellValue($"名称:{title}"); - // sheet2.GetRow(i + 6).GetCell(2).SetCellValue($"SKU:{sealBoxModel.SealBoxSkus[i].SkuId}"); - // sheet2.GetRow(i + 6).GetCell(3).SetCellValue($"数量:{sealBoxModel.SealBoxSkus[i].WareHourseSkuCount}"); - - // } - // sheet2.GetRow(25).GetCell(1).SetCellValue(totalCount); - // sheet2.GetRow(28).GetCell(1).SetCellValue(boxCount); - // FileStream fs1 = new FileStream(newExccel, FileMode.OpenOrCreate, FileAccess.ReadWrite); - // wb2.Write(fs1); - // fs1.Close(); - // fs1.Dispose(); - // Workbook workbook = new Workbook(); - - // workbook.LoadFromFile(newExccel); - - // Worksheet wsheet = workbook.Worksheets[0]; - - // wsheet.PageSetup.PaperSize = PaperSizeType.PaperA4; - // wsheet.PageSetup.Orientation = PageOrientationType.Portrait; - // wsheet.PageSetup.PrintArea = "A1:D31"; - - - - // var print = workbook.PrintDocument; - // print.PrinterSettings.PrinterName = printName; - // print.PrinterSettings.Copies = (short)printCount;//打印份数 - - - - // print.Print(); - //} - /// /// 打印京东箱唛 /// - public static void PrintJDBoxWareData(JDWareBoxModel jDWareBoxModel,string printName) + public static void PrintJDBoxWareData(JDWareBoxModel jDWareBoxModel, string printName) { - + } @@ -749,6 +684,48 @@ namespace BBWY.Client.Helpers SetDefaultPrinter(printName); } + public static void PrintPackDetail(PackTaskModel model,ref PrintPageEventArgs args, Font font) + { + args.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + args.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; + var sige = args.Graphics.VisibleClipBounds;// 宽:283 高:511 打印可视化区域 + args.Graphics.TranslateTransform(0, 0);//设置起始位置 + args.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; + args.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + + args.Graphics.DrawImage(LoadImage(model.ItemList[0].Logo.Replace("80x80","200x200")), 10, 20, 120, 120); + + + + + } + + private static Image LoadImage(string imageUrl) + { + try + { + using (HttpClient client = new HttpClient()) + { + // 发送 HTTP 请求并获取图片数据 + var uri = new Uri(Uri.EscapeUriString(imageUrl)); + byte[] imageData = client.GetByteArrayAsync(uri).Result; + return imageData.ByteToImage(); + + } + } + catch (Exception ex) + { + // 处理加载图片失败的异常 + Console.WriteLine("加载图片失败:" + ex.Message); + } + return null; + } + + + + + + /// /// 调用win api将指定名称的打印机设置为默认打印机 /// diff --git a/BBWY.Client/Resources/Images/123.bmp b/BBWY.Client/Resources/Images/123.bmp new file mode 100644 index 0000000000000000000000000000000000000000..10d1b473a2ef4b72ee272ff58137e5d1ce94b564 GIT binary patch literal 15575 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 - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/BBWY.Client/Views/PackTask/PackDetailWindow.xaml.cs b/BBWY.Client/Views/PackTask/PackDetailWindow.xaml.cs index 177a1fae..cdee28c0 100644 --- a/BBWY.Client/Views/PackTask/PackDetailWindow.xaml.cs +++ b/BBWY.Client/Views/PackTask/PackDetailWindow.xaml.cs @@ -1,13 +1,20 @@ -using BBWY.Client.Helpers; +using BBWY.Client.Extensions; +using BBWY.Client.Helpers; using BBWY.Client.Models; using BBWY.Client.ViewModels.PackTask; using BBWY.Controls; using System; using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Printing; using System.IO; +using System.Linq; +using System.Net.Http; using System.Printing; using System.Reflection; +using System.Security.Policy; using System.Text; +using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; @@ -16,6 +23,7 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; +using WebSocketSharp; namespace BBWY.Client.Views.PackTask { @@ -24,20 +32,33 @@ namespace BBWY.Client.Views.PackTask /// public partial class PackDetailWindow : BWindow { + public PackDetailWindow(PackTaskModel model, Action reflashWindow) { InitializeComponent(); var serviceViewModel = this.DataContext as PackDetailViewModel; - //加载数据 - + if (model.Brand.IsNullOrEmpty()) + { + if (!model.BarCodeModel.Brand.IsNullOrEmpty()) + model.Brand = model.BarCodeModel.Brand; + else if (model.CertificateModel != null && model.CertificateModel.Any(c => c.Brand != null)) + model.Brand = model.CertificateModel.FirstOrDefault(c => c.Brand != null)?.Brand; + } + if (model.BrandName.IsNullOrEmpty()) + { + if (!model.BarCodeModel.BrandName.IsNullOrEmpty()) + model.BrandName = model.BarCodeModel.BrandName; + else if (model.CertificateModel != null && model.CertificateModel.Any(c => c.BrandName != null)) + model.BrandName = model.CertificateModel.FirstOrDefault(c => c.BrandName != null)?.BrandName; + } if (model.BarCodeModel != null) { model.BarCodeModel.ShopName = model.ShopName; } serviceViewModel.PackTaskModel = model; - serviceViewModel.PackTaskList = new System.Collections.ObjectModel.ObservableCollection { model}; + serviceViewModel.PackTaskList = new System.Collections.ObjectModel.ObservableCollection { model }; serviceViewModel.FloorDragNumber = model.FloorDragNumber; serviceViewModel.TaskCount = model.SkuCount; serviceViewModel.TaskId = model.TaskId; @@ -47,61 +68,169 @@ namespace BBWY.Client.Views.PackTask serviceViewModel.LoadPackDatas(); if (reflashWindow != null) serviceViewModel.ReflashWindow = reflashWindow; + + // DownloadImags(model.ItemList[0].Logo.Replace("80x80", "500x500")); + LoadImage(model.ItemList[0].Logo.Replace("80x80", "200x200")); + + + + } + //PackTaskModel model = new PackTaskModel(); + + ///// + ///// 图片 + ///// + //public BitmapImage LogoImage { get; set; } + private void BButton_Click(object sender, RoutedEventArgs e) { - //return;//禁用打印 - var localPrintServer = new LocalPrintServer(); + //PrintPackTaskDetail printWindow = new PrintPackTaskDetail(model); + + //if (printWindow==null) + //{ + // MessageBox.Show("页面加载中,请重试!"); + // return; + //} string printName = cbPrintName.Text.Trim(); + PrintBox(printName); + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = System.IO.Path.Combine(applicationPath, "printName.init"); + try + { + if (File.Exists(printNames)) + { + File.Delete(printNames); + } + } + catch + { + + + } + + File.WriteAllText(printNames, cbPrintName.Text); + + return; + } + + public void PrintBox(string printName) + { + + //PrintData(1, printName, model); + //return; + + var localPrintServer = new LocalPrintServer(); if (string.IsNullOrEmpty(printName)) { - System.Windows.MessageBox.Show("选择打印机"); return; } - var printQueue = localPrintServer.GetPrintQueue(printName); if (printQueue.IsInError) { System.Windows.MessageBox.Show("打印机处于错误状态"); return; } - MyPrintHelper.SetDefaultPrint(printName);//设置默认打印机 - - - System.Windows.Controls.PrintDialog printDialog = new PrintDialog(); - printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;//设置为横向打印 PageOrientation.Landscape Portrait为纵向 - //设置纸张大小 - + PrintDialog printDialog = new PrintDialog(); + printDialog.PrintTicket.PageOrientation = PageOrientation.ReversePortrait;//设置为横向打印 PageOrientation.Landscape Portrait为纵向 + //设置纸张大小 var pageWidth = (int)Math.Ceiling(printDialog.PrintableAreaWidth); var pageHeight = (int)Math.Ceiling(printDialog.PrintableAreaHeight); printDialog.PrintTicket.PageMediaSize = new PageMediaSize(pageWidth, pageHeight); - //printArea.Height = pageHeight;//833 - //printArea.Width = pageWidth;//1123 - this.printArea.Arrange(new Rect(new Point(0, 0), new Size(printArea.ActualWidth, printArea.ActualHeight))); - - printDialog.PrintVisual(this.printArea, "打印任务"); + print_box.Height = pageHeight; + print_box.Width = pageWidth; + this.print_box.Arrange(new Rect(new System.Windows.Point(0, 0), new System.Windows.Size(pageWidth, pageHeight))); + this.UpdateLayout(); //刷新界面 + printDialog.PrintVisual(this.print_box, "打印任务"); + this.Close(); + } - var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - string printNames = System.IO.Path.Combine(applicationPath, "printName.init"); + private async void LoadImage(string imageUrl) + { try { - if (File.Exists(printNames)) + + + using (HttpClient client = new HttpClient()) { - File.Delete(printNames); + // 发送 HTTP 请求并获取图片数据 + var uri = new Uri(Uri.EscapeUriString(imageUrl)); + byte[] imageData = await client.GetByteArrayAsync(uri); + + + // 创建 BitmapImage 对象并设置图片数据 + + + // 在 UI 线程上更新 Image 控件的 Source 属性 + + var LogoImage = imageData.ByteToBitmapImage(); + + + img_logo.Source = LogoImage; } } - catch + catch (Exception ex) { + // 处理加载图片失败的异常 + Console.WriteLine("加载图片失败:" + ex.Message); + } + } + private void DownloadImags(string url) + { + var client = new HttpClient(); + var uri = new Uri(Uri.EscapeUriString(url)); + byte[] urlContents = client.GetByteArrayAsync(uri).Result; + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string imagePath = System.IO.Path.Combine(applicationPath, "123.bmp"); + + if (File.Exists(imagePath)) + { + File.Delete(imagePath); } - File.WriteAllText(printNames, cbPrintName.Text); + using (System.IO.FileStream fs = new System.IO.FileStream(imagePath, System.IO.FileMode.CreateNew)) + { + fs.Write(urlContents, 0, urlContents.Length); + } + BitmapImage img = new BitmapImage(new Uri(imagePath)); + img_logo.Source = img; + this.UpdateLayout(); //刷新界面 + } + + private void PrintData(int printCount, string printName, PackTaskModel model) + { + try + { + + PrintDocument document = new PrintDocument(); + document.PrinterSettings.PrinterName = printName;//使用打印机名称,指定特定的打印机进行打印。 + //设置打印页面 + //document.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Custom", 236, 157); + document.PrintPage += (s, a) => + { + Font font = new Font("宋体", 6, System.Drawing.FontStyle.Regular); + + MyPrintHelper.PrintPackDetail(model, ref a, font); + + }; + document.PrinterSettings.Copies = (short)printCount;//打印份数 + document.Print(); + } + catch (Exception ex) + { + App.Current.Dispatcher.Invoke(() => + { + new TipsWindow($"打印失败,{ex.Message}").Show(); + }); + } } + } } diff --git a/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml b/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml index 775a36d5..439c5191 100644 --- a/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml +++ b/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml @@ -5,11 +5,12 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.PackTask" mc:Ignorable="d" + xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" Title="PrintPackTaskDetail" Height="492" Width="272"> - + - + @@ -17,52 +18,114 @@ - - - - - + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml.cs b/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml.cs index 7b2dd34e..a33f753b 100644 --- a/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml.cs +++ b/BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml.cs @@ -1,19 +1,19 @@ -using BBWY.Client.Helpers; +using BBWY.Client.Extensions; +using BBWY.Client.Helpers; using BBWY.Client.Models; -using BBWY.Client.Models.FallWare; + using System; -using System.Collections.Generic; + +using System.Drawing.Imaging; + +using System.Net.Http; using System.Printing; -using System.Reflection; -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; + namespace BBWY.Client.Views.PackTask { @@ -25,8 +25,11 @@ namespace BBWY.Client.Views.PackTask public PrintPackTaskDetail(PackTaskModel model) { InitializeComponent(); + PackTaskModel = model; - + PackTaskModel.ItemList[0].Logo = PackTaskModel.ItemList[0].Logo.Replace("80*80", "110*110"); + //LoadImage(model.ItemList[0].Logo); + BarcodeImage = MyPrintHelper.GetBarcodeImage(model.SkuId, 300, 60); this.DataContext = this; this.UpdateLayout();//刷新UI @@ -34,7 +37,15 @@ namespace BBWY.Client.Views.PackTask public PackTaskModel PackTaskModel { get; set; } + /// + /// skuid条形码 + /// + public BitmapImage BarcodeImage { get; set; } + /// + /// 图片 + /// + public BitmapImage LogoImage { get; set; } public void PrintBox(string printName) { @@ -53,14 +64,13 @@ namespace BBWY.Client.Views.PackTask MyPrintHelper.SetDefaultPrint(printName);//设置默认打印机 PrintDialog printDialog = new PrintDialog(); - printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;//设置为横向打印 PageOrientation.Landscape Portrait为纵向 + printDialog.PrintTicket.PageOrientation = PageOrientation.ReversePortrait;//设置为横向打印 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;//833 - this.Width = pageWidth;//1123 - this.FontSize = 30; + print_box.Height = pageHeight; + print_box.Width = pageWidth; // box_margin.Margin = new Thickness(50, 50, 50, 50); //box_margin.Margin = new Thickness(10); //this.jd_box.Arrange(new Rect(new Point(0, 0), new Size(pageWidth, pageHeight))); @@ -77,5 +87,48 @@ namespace BBWY.Client.Views.PackTask //System.IO.File.WriteAllText(printNames, printName); this.Close(); } + + + private async void LoadImage(string imageUrl) + { + try + { + + + using (HttpClient client = new HttpClient()) + { + // 发送 HTTP 请求并获取图片数据 + byte[] imageData = await client.GetByteArrayAsync(imageUrl); + + LogoImage= imageData.ByteToBitmapImage(); + // 创建 BitmapImage 对象并设置图片数据 + BitmapImage bitmapImage = new BitmapImage(); + try + { + bitmapImage.BeginInit(); + + bitmapImage.StreamSource = new System.IO.MemoryStream(imageData); + bitmapImage.EndInit(); + bitmapImage.Freeze(); + + } + catch (Exception ex) + { + + } + + // 在 UI 线程上更新 Image 控件的 Source 属性 + Application.Current.Dispatcher.Invoke(() => + { + LogoImage = bitmapImage; + }); + } + } + catch (Exception ex) + { + // 处理加载图片失败的异常 + Console.WriteLine("加载图片失败:" + ex.Message); + } + } } } diff --git a/BBWY.Client/Views/PackTask/WareHouseListControl.xaml b/BBWY.Client/Views/PackTask/WareHouseListControl.xaml index fcfd18e5..247f6eaa 100644 --- a/BBWY.Client/Views/PackTask/WareHouseListControl.xaml +++ b/BBWY.Client/Views/PackTask/WareHouseListControl.xaml @@ -543,7 +543,7 @@