From fa5bf23c08f951a875c7e75a42b422d7d4ac576f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=8D=B7?= <10950865+becauselijie@user.noreply.gitee.com> Date: Sat, 12 Jul 2025 16:20:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A1=B9=E7=9B=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 30 ++ .../ForumApplicationAutoMapperProfile.cs | 17 + Print.Application/ForumApplicationModule.cs | 34 ++ Print.Application/Print.Application.csproj | 29 ++ Print.Application/Print/EzioInterop.cs | 302 ++++++++++++++++++ Print.Application/Print/GoDEXCommunication.cs | 24 ++ Print.Application/Print/GoDEXEnum.cs | 34 ++ Print.Application/Print/GoDEXPrint.cs | 131 ++++++++ .../Print/GoDEXPrintBase64Image.cs | 36 +++ Print.Application/Print/GoDEXPrintData.cs | 26 ++ Print.Application/Print/GoDEXPrintImage.cs | 170 ++++++++++ .../Print/GoDEXPrintImageFile.cs | 29 ++ Print.Application/Print/GoDEXPrintSetup.cs | 34 ++ Print.Application/Print/IGoDEXPrintData.cs | 20 ++ Print.Application/Print/PrintExtension.cs | 54 ++++ .../Print/x64lib/libezio.so.1.1.0 | Bin 0 -> 52752 bytes Print.Application/Print/x64lib/libttf_x64.so | Bin 0 -> 205928 bytes .../Print/x64lib/libusb-1.0.so.0.3.0 | Bin 0 -> 157664 bytes .../ForumApplicationContractsModule.cs | 7 + .../Print.Forum.Application.Contracts.csproj | 13 + .../PrintPictureDto.cs | 22 ++ .../ResultDto.cs | 140 ++++++++ Print.Forum.Domain/ForumDomainModule.cs | 7 + Print.Forum.Domain/Print.Forum.Domain.csproj | 13 + Print.Forum.HttpApi.Host/Dockerfile | 27 ++ .../ForumHttpApiHostModule.cs | 73 +++++ .../GoDEXPrintController.cs | 132 ++++++++ .../Print.Forum.HttpApi.Host.csproj | 25 ++ .../Print.Forum.HttpApi.Host.http | 6 + Print.Forum.HttpApi.Host/Program.cs | 30 ++ .../Properties/launchSettings.json | 52 +++ .../appsettings.Development.json | 8 + Print.Forum.HttpApi.Host/appsettings.json | 9 + abp.PrintService.sln | 40 +++ 新建 文本文档.md | 0 35 files changed, 1574 insertions(+) create mode 100644 .dockerignore create mode 100644 Print.Application/ForumApplicationAutoMapperProfile.cs create mode 100644 Print.Application/ForumApplicationModule.cs create mode 100644 Print.Application/Print.Application.csproj create mode 100644 Print.Application/Print/EzioInterop.cs create mode 100644 Print.Application/Print/GoDEXCommunication.cs create mode 100644 Print.Application/Print/GoDEXEnum.cs create mode 100644 Print.Application/Print/GoDEXPrint.cs create mode 100644 Print.Application/Print/GoDEXPrintBase64Image.cs create mode 100644 Print.Application/Print/GoDEXPrintData.cs create mode 100644 Print.Application/Print/GoDEXPrintImage.cs create mode 100644 Print.Application/Print/GoDEXPrintImageFile.cs create mode 100644 Print.Application/Print/GoDEXPrintSetup.cs create mode 100644 Print.Application/Print/IGoDEXPrintData.cs create mode 100644 Print.Application/Print/PrintExtension.cs create mode 100644 Print.Application/Print/x64lib/libezio.so.1.1.0 create mode 100644 Print.Application/Print/x64lib/libttf_x64.so create mode 100644 Print.Application/Print/x64lib/libusb-1.0.so.0.3.0 create mode 100644 Print.Forum.Application.Contracts/ForumApplicationContractsModule.cs create mode 100644 Print.Forum.Application.Contracts/Print.Forum.Application.Contracts.csproj create mode 100644 Print.Forum.Application.Contracts/PrintPictureDto.cs create mode 100644 Print.Forum.Application.Contracts/ResultDto.cs create mode 100644 Print.Forum.Domain/ForumDomainModule.cs create mode 100644 Print.Forum.Domain/Print.Forum.Domain.csproj create mode 100644 Print.Forum.HttpApi.Host/Dockerfile create mode 100644 Print.Forum.HttpApi.Host/ForumHttpApiHostModule.cs create mode 100644 Print.Forum.HttpApi.Host/GoDEXPrintController.cs create mode 100644 Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj create mode 100644 Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.http create mode 100644 Print.Forum.HttpApi.Host/Program.cs create mode 100644 Print.Forum.HttpApi.Host/Properties/launchSettings.json create mode 100644 Print.Forum.HttpApi.Host/appsettings.Development.json create mode 100644 Print.Forum.HttpApi.Host/appsettings.json create mode 100644 abp.PrintService.sln create mode 100644 新建 文本文档.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fe1152b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/Print.Application/ForumApplicationAutoMapperProfile.cs b/Print.Application/ForumApplicationAutoMapperProfile.cs new file mode 100644 index 0000000..447bfd8 --- /dev/null +++ b/Print.Application/ForumApplicationAutoMapperProfile.cs @@ -0,0 +1,17 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Print.Application +{ + public class ForumApplicationAutoMapperProfile : Profile + { + public ForumApplicationAutoMapperProfile() + { + + } + } +} diff --git a/Print.Application/ForumApplicationModule.cs b/Print.Application/ForumApplicationModule.cs new file mode 100644 index 0000000..3be45da --- /dev/null +++ b/Print.Application/ForumApplicationModule.cs @@ -0,0 +1,34 @@ +using Microsoft.Extensions.DependencyInjection; +using Print.Forum.Application.Contracts; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; + +namespace Print.Application; + + + + + +/// +/// 项目模块依赖、组件依赖 +/// +[DependsOn( + typeof(AbpAutoMapperModule), + typeof(ForumApplicationContractsModule) + )] +public class ForumApplicationModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var services = context.Services; + // 添加ObjectMapper注入 + services.AddAutoMapperObjectMapper(); + + // Abp AutoMapper设置 + Configure(config => + { + // 添加对应依赖关系Profile + config.AddMaps(); + }); + } +} \ No newline at end of file diff --git a/Print.Application/Print.Application.csproj b/Print.Application/Print.Application.csproj new file mode 100644 index 0000000..470b4cc --- /dev/null +++ b/Print.Application/Print.Application.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Print.Application/Print/EzioInterop.cs b/Print.Application/Print/EzioInterop.cs new file mode 100644 index 0000000..87a5f23 --- /dev/null +++ b/Print.Application/Print/EzioInterop.cs @@ -0,0 +1,302 @@ +using System; +using System.Runtime.InteropServices; + +namespace JingGong.Abp.Print.GoDEX +{ + public class EzioInterop + { + const string EzioLibrary = "ezio.so.1.1.0"; + const string Usblib = "usb-1.0.so.0"; + + /// + /// Open 函数 + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)] + public static extern bool Open(string hostname, int port); + + /// + /// Close 函数 + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern void Close(); + + // openUSB 函数 + [DllImport(Usblib, CallingConvention = CallingConvention.Cdecl)] + public static extern int openUSB(); + + /// + /// closeUSB 函数 + /// + [DllImport(Usblib, CallingConvention = CallingConvention.Cdecl)] + public static extern void closeUSB(); + + /// + /// OpenDriver 函数 + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int OpenDriver(string port); + + /// + /// closeport 函数 + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int closeport(); + + /// + /// RcvBuf 函数 + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int RcvBuf(IntPtr buf, UIntPtr count); + + /// + /// sendbuf 函数 + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int sendbuf([MarshalAs(UnmanagedType.LPArray)] byte[] buf, int count); + + /// + /// sendcommand 函数 + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int sendcommand(string cmd); + + /// + /// setup 函数 + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int setup(int mm, int dark, int speed, int mode, int gap, int top); + + /// + /// Bar 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int Bar(string BarcodeType, int PosX, int PosY, int Narrow, int Wide, int Height, int Rotation, int Readable, string data); + + /// + /// Bar_S 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int Bar_S(string BarcodeType, int PosX, int PosY, string data); + + /// + /// Bar_QRcode 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int Bar_QRcode(int PosX, int PosY, int Mode, int Type, string ErrorLevel, int Mask, int Mul, int Len, int Rotation, string data); + + /// + /// Bar_QRcode_S 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int Bar_QRcode_S(int PosX, int PosY, int Len, string data); + + /// + /// DrawHorLine 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int DrawHorLine(int PosX, int PosY, int Length, int Thick); + + /// + /// DrawVerLine 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int DrawVerLine(int PosX, int PosY, int Length, int Thick); + + /// + /// InternalFont_TextOut 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int InternalFont_TextOut(string FontType, int PosX, int PosY, int Mul_X, int Mul_Y, int Gap, string RotationInverse, string Data); + + /// + /// InternalFont_TextOut_S 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int InternalFont_TextOut_S(string FontType, int PosX, int PosY, string Data); + + /// + /// DownloadFont_TextOut 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int DownloadFont_TextOut(string FontName, int PosX, int PosY, int Mul_X, int Mul_Y, int Gap, string RotationInverse, string Data); + + /// + /// DownloadFont_TextOut_S 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int DownloadFont_TextOut_S(string FontName, int PosX, int PosY, string Data); + + /// + /// TrueTypeFont_TextOut 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int TrueTypeFont_TextOut(string FontName, int PosX, int PosY, int Font_W, int Font_H, int SpaceChar, string RotationInverse, string TTFTable, int WidthMode, string Data); + + /// + /// TrueTypeFont_TextOut_S 函数 + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int TrueTypeFont_TextOut_S(string FontName, int PosX, int PosY, string Data); + + /// + /// ecTextOut 函数 + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int ecTextOut(int x, int y, int height, string fontname, string TEXT); + + /// + /// ecTextOutR 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int ecTextOutR(int x, int y, int height, string fontname, string TEXT, int width, int degree); + + /// + /// ecTextOutW 函数 + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int ecTextOutW(int x, int y, int height, string fontname, [MarshalAs(UnmanagedType.LPWStr)] string TEXT); + + /// + /// ecTextOutRW 函数 + /// + /// + /// + /// + /// + /// + /// + /// + /// + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int ecTextOutRW(int x, int y, int height, string fontname, [MarshalAs(UnmanagedType.LPWStr)] string TEXT, int width, int degree); + + [DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)] + public static extern int putimage(int x, int y, [MarshalAs(UnmanagedType.LPStr)] string Filename, int Degree); + } +} diff --git a/Print.Application/Print/GoDEXCommunication.cs b/Print.Application/Print/GoDEXCommunication.cs new file mode 100644 index 0000000..d43d42d --- /dev/null +++ b/Print.Application/Print/GoDEXCommunication.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印机配置 + /// + public class GoDEXCommunication + { + /// + /// 地址 + /// + public string Host { get; set; } + + /// + /// 端口 + /// + public int Port { get; set; } + } +} diff --git a/Print.Application/Print/GoDEXEnum.cs b/Print.Application/Print/GoDEXEnum.cs new file mode 100644 index 0000000..3ac43b1 --- /dev/null +++ b/Print.Application/Print/GoDEXEnum.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印机状态 + /// + public enum GoDEXEnum + { + 待機狀態 = 00, + 耗材用盡 = 01, + 卡紙 = 02, + 碳帶用盡 = 03, + 印表頭開啟 = 04, + 背紙回收器已滿 = 05, + 檔案系統已滿 = 06, + 找不到檔案 = 07, + 檔名重複 = 08, + 指令語法錯誤 = 09, + 裁刀卡住或未安裝裁刀 = 10, + 無延伸記憶體 = 11, + 等待取走標籤 = 13, + 暫停 = 20, + 設定模式 = 21, + 鍵盤模式 = 22, + 印表機列印中 = 50, + 資料處理中 = 60, + 印表頭過熱 = 62, + } +} diff --git a/Print.Application/Print/GoDEXPrint.cs b/Print.Application/Print/GoDEXPrint.cs new file mode 100644 index 0000000..4dfb7bb --- /dev/null +++ b/Print.Application/Print/GoDEXPrint.cs @@ -0,0 +1,131 @@ +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + public class GoDEXPrint : IDisposable + { + private static object printLock = new object(); + + + /// + /// 连接打印机 + /// + /// + public bool Open(GoDEXCommunication goDEXCommunication) + { + return EzioInterop.Open(goDEXCommunication.Host, goDEXCommunication.Port); + } + + /// + /// 关闭打印机 + /// + /// + public bool Close() + { + return EzioInterop.closeport() == 1; + } + + /// + /// 打印 + /// + /// + public bool Print(IGoDEXPrintData goDEXPrintData) + { + bool printSuccess = false; + //_logger.LogInformation("3.进入打印机方法,锁外"); + try + { + // 打印任务执行,可能是阻塞的,因此考虑异步执行 + Task.Run(() => + { + try + { + //GoDEX库因无法识别打印机,当前只适应用单任务打印 + //lock (printLock) + //{ + + if (Open(goDEXPrintData.Communication)) + { + LabelSetup(goDEXPrintData); + + //^L(標籤起始符號設定,^L 正常列印,^LI 反白列印,^LM 鏡像列印,^LRn 整張旋轉 n=0, 0°列印 ; n=1, 90°列印 ; n=2, 180°列印 ; n=3, 270°列印) + EzioInterop.sendcommand($"^L"); + // 尝试执行打印操作,成功返回 + if (goDEXPrintData.Print()) + { + printSuccess = true; + } + else + { + throw new Exception("打印失败!"); + } + //结束,打印机收到后开始打印 + EzioInterop.sendcommand("E"); + } + else + { + Console.WriteLine("6.打印机连接失败"); + throw new Exception("打印机连接失败!"); + } + + } + catch (Exception ex) + { + // 记录异常日志 + //_logger.LogInformation($"5.打印操作异常:{ex.Message}"); + Console.WriteLine($"打印操作异常:{ex.Message}"); + } + finally + { + Close(); + } + }); + } + catch(Exception ex) + { + // 捕获整个过程中的异常 + //_logger.LogInformation($"打印失败,异常:{ex.Message}"); + Console.WriteLine($"打印失败:{ex.Message}"); + } + return printSuccess; + } + + /// + /// 设定参数 + /// + /// + private void LabelSetup(IGoDEXPrintData goDEXPrintData) + { + //標籤長度設定 x长,y不指定,z每张间隔) + EzioInterop.sendcommand($"^Q{goDEXPrintData.LabelSetup.Height},0,{goDEXPrintData.LabelSetup.Speed}"); + + //^W54(標籤寬度設定) + EzioInterop.sendcommand($"^W{goDEXPrintData.LabelSetup.Width}"); + + //^H10(列印黑度設定x = 00 ~ 19) + EzioInterop.sendcommand($"^H{goDEXPrintData.LabelSetup.Dark}"); + + //^S3(列印速度設定x = 2 ~ 10) + EzioInterop.sendcommand($"^H{goDEXPrintData.LabelSetup.Speed}"); + + //^P1(連續列印) + EzioInterop.sendcommand($"^P1"); + + //^C1(複製張數x = 1 ~ 32767) + EzioInterop.sendcommand($"^C1"); + } + + /// + /// 关闭打印机 + /// + public void Dispose() + { + Close(); + } + } +} diff --git a/Print.Application/Print/GoDEXPrintBase64Image.cs b/Print.Application/Print/GoDEXPrintBase64Image.cs new file mode 100644 index 0000000..7ea5c44 --- /dev/null +++ b/Print.Application/Print/GoDEXPrintBase64Image.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 按base64打印图片 + /// + public class GoDEXPrintBase64Image : GoDEXPrintImage + { + /// + /// Base64数据 + /// + public string ImageBase64 { get; set; } + + /// + /// 获取图片数据 + /// + /// + protected override byte[] GetImageData() + { + var base64Content = ImageBase64; + // 检查是否包含 Base64 前缀 + if (base64Content.Contains("base64,")) + { + // 去除 "data:image/;base64," 头部信息 + base64Content = base64Content.Substring(base64Content.IndexOf(",") + 1); + } + + return Convert.FromBase64String(base64Content); + } + } +} diff --git a/Print.Application/Print/GoDEXPrintData.cs b/Print.Application/Print/GoDEXPrintData.cs new file mode 100644 index 0000000..4704ad7 --- /dev/null +++ b/Print.Application/Print/GoDEXPrintData.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印数据基础数据结构 + /// + public abstract class GoDEXPrintData : IGoDEXPrintData + { + public GoDEXCommunication Communication { get; set; } + + public GoDEXPrintSetup LabelSetup { get; set; } + + /// + /// 1毫米的点数 + /// + public readonly int Dots = 8; + + public abstract bool Print(); + + } +} diff --git a/Print.Application/Print/GoDEXPrintImage.cs b/Print.Application/Print/GoDEXPrintImage.cs new file mode 100644 index 0000000..7731d2b --- /dev/null +++ b/Print.Application/Print/GoDEXPrintImage.cs @@ -0,0 +1,170 @@ +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Processing; +using System.Collections.Generic; +using System.Text; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印图片 + /// + public abstract class GoDEXPrintImage : GoDEXPrintData + { + /// + /// X起始位置,单位mm + /// + public int PosX { get; set; } + + /// + /// Y起始位置,单位mm + /// + public int PosY { get; set; } + + /// + /// 图片宽,单位mm + /// + public int Width { get; set; } + + /// + /// 图片高,单位mm + /// + public int Height { get; set; } + + /// + /// 打印图像 + /// + /// + public override bool Print() + { + var imageData = ProcessImageData(); + + //Q10,10,102,484(圖案命令x,y,width,heigh) + //x = 自左上角量起之水平位置(單位:dots). + //y = 自左上角量起之垂直位置(單位:dots). + //width = 圖檔寬度(單位:byte) + //height = 圖檔高度(單位:dots) + EzioInterop.sendcommand($"Q{PosX * Dots},{PosY * Dots},{imageData.Width},{imageData.Height}"); + //EzioInterop.sendcommand($"Q40,10,3,8"); + + //发送图片数据 + //EzioInterop.sendcommand(imageData); + EzioInterop.sendbuf(imageData.Data, imageData.Data.Length); + //EzioInterop.sendbuf(new byte[] { 0b01000001, 0b01000001, 0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001, + //0b01000001,0b01000001,0b01000001,}, 24); + + EzioInterop.sendcommand("\n"); + + return true; + + } + + /// + /// 处理图片数据 + /// + /// + /// + protected virtual (int Width, int Height, byte[] Data) ProcessImageData() + { + var imageBytes = GetImageData(); + + // 加载图像 + using (var image = Image.Load(imageBytes)) + { + // 获取原始图像尺寸 + int originalWidth = image.Width; + int originalHeight = image.Height; + + image.Mutate(ctx => + { + // 转换为灰度图像 + // 进行二值化,128是阈值,低于该值为黑色,高于为白色 + //image.Mutate(x => x.Grayscale().BinaryThreshold(128f / 255f)); + ctx.Grayscale(); + + //调整图像大小 + if (Width != 0 || Height != 0) + ctx.Resize(originalWidth * 2, originalHeight * 2, KnownResamplers.Bicubic); + + ////适当锐化 + //ctx.GaussianSharpen(3f); + + ////调整对比度 + //ctx.Contrast(1.2f); + + }); + + return ConvertImageToBytes(image); + } + } + + /// + /// 获取图片数据 + /// + /// + protected abstract byte[] GetImageData(); + + /// + /// 获取图像数据 + /// + /// + /// + protected (int Width, int Height, byte[] Data) ConvertImageToBytes(Image image) + { + StringBuilder sb = new StringBuilder(); + + var clonedImage = image.CloneAs(); + + + // 创建一个列表来存储字节数据 + List byteList = new List(); + + // 遍历每一行 + for (int y = 0; y < image.Height; y++) + { + byte currentByte = 0; + int bitCount = 0; + + for (int x = 0; x < image.Width; x++) + { + // 获取当前像素的颜色 + var pixel = clonedImage[x, y]; + + // 黑色为1,白色为0(颠倒值) + //将灰度转为黑白,选择适当灰度值转为黑色 + byte pixelValue = pixel.R <= 180 ? (byte)1 : (byte)0; + + // 将像素值存入当前字节 + currentByte |= (byte)(pixelValue << (7 - bitCount)); + bitCount++; + + // 如果一个字节已满,保存该字节并清空 + if (bitCount == 8) + { + sb.Append((char)currentByte); + + byteList.Add(currentByte); + currentByte = 0; + bitCount = 0; + + } + } + + // 如果行末不足8个像素,则补充零 + if (bitCount > 0) + { + sb.Append((char)currentByte); + byteList.Add(currentByte); + } + } + + return (image.Width % 8 == 0 ? image.Width / 8 : image.Width / 8 + 1, image.Height, byteList.ToArray()); + } + } +} diff --git a/Print.Application/Print/GoDEXPrintImageFile.cs b/Print.Application/Print/GoDEXPrintImageFile.cs new file mode 100644 index 0000000..62d0a5c --- /dev/null +++ b/Print.Application/Print/GoDEXPrintImageFile.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 按图片打印 + /// + public class GoDEXPrintImageFile : GoDEXPrintImage + { + /// + /// 图片地址 + /// + public string FilePath { get; set; } + + /// + /// 获取图片数据 + /// + /// + protected override byte[] GetImageData() + { + return File.ReadAllBytes(FilePath); + } + } +} diff --git a/Print.Application/Print/GoDEXPrintSetup.cs b/Print.Application/Print/GoDEXPrintSetup.cs new file mode 100644 index 0000000..4807666 --- /dev/null +++ b/Print.Application/Print/GoDEXPrintSetup.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印页面配置 + /// + public class GoDEXPrintSetup + { + /// + /// 高 + /// + public int Height { get; set; } + + /// + /// 宽 + /// + public int Width { get; set; } + + /// + /// 间隔 + /// + public int Speed { get; set; } + + /// + /// 黑度 + /// + public int Dark { get; set; } + } +} diff --git a/Print.Application/Print/IGoDEXPrintData.cs b/Print.Application/Print/IGoDEXPrintData.cs new file mode 100644 index 0000000..1966d7e --- /dev/null +++ b/Print.Application/Print/IGoDEXPrintData.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JingGong.Abp.Print.GoDEX +{ + /// + /// 打印数据接口 + /// + public interface IGoDEXPrintData + { + GoDEXCommunication Communication { get; set; } + + GoDEXPrintSetup LabelSetup { get; set; } + + abstract bool Print(); + } +} diff --git a/Print.Application/Print/PrintExtension.cs b/Print.Application/Print/PrintExtension.cs new file mode 100644 index 0000000..5d3b3a9 --- /dev/null +++ b/Print.Application/Print/PrintExtension.cs @@ -0,0 +1,54 @@ +using Microsoft.AspNetCore.Builder; +using System; +using System.IO; +using System.Reflection; + +namespace JingGong.Abp.Print.GoDEX +{ + public static class PrintExtension + { + public static void AddGoDEX(this IApplicationBuilder applicationBuilder) + { + //注:docker运行时需添加环境变量:#ENV LD_LIBRARY_PATH=/app/libx64:$LD_LIBRARY_PATH + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libezio.so.1.1.0", "libx64/libezio.so.1.1.0"); + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libttf_x64.so", "libx64/libttf_x64.so"); + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libusb-1.0.so.0.3.0", "libx64/libusb-1.0.so.0"); + + //临时解决环境变量未生效问题 + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libezio.so.1.1.0", "libezio.so.1.1.0"); + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libttf_x64.so", "libttf_x64.so"); + ExtractResourceToFile("JingGong.Abp.Print.GoDEX.x64lib.libusb-1.0.so.0.3.0", "libusb-1.0.so.0"); + } + + /// + /// 释放资源文件至本地文件 + /// + /// + /// + internal static void ExtractResourceToFile(string resourceName, string fileFullName) + { + using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) + { + if (stream == null) + return; + + try + { + var dir = Path.GetDirectoryName(fileFullName); + + if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir)) + Directory.CreateDirectory(dir); + + using (FileStream fileStream = new FileStream(fileFullName, FileMode.Create, FileAccess.Write)) + { + stream.CopyTo(fileStream); + } + } + catch + { + Console.WriteLine($"写入{fileFullName}失败"); + } + } + } + } +} diff --git a/Print.Application/Print/x64lib/libezio.so.1.1.0 b/Print.Application/Print/x64lib/libezio.so.1.1.0 new file mode 100644 index 0000000000000000000000000000000000000000..aa567a64b795fcdeaa884b7b3fb1cef43e29ff44 GIT binary patch literal 52752 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 literal 0 HcmV?d00001 diff --git a/Print.Application/Print/x64lib/libttf_x64.so b/Print.Application/Print/x64lib/libttf_x64.so new file mode 100644 index 0000000000000000000000000000000000000000..09697042424f1e42fb265d40b7baec3f30330f19 GIT binary patch literal 205928 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�bOf! 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

FxnQC2% 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 z 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

n92Rj^FR?J0N6dLw!5D6Z~>wkv$>$Kl$`e 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 literal 0 HcmV?d00001 diff --git a/Print.Forum.Application.Contracts/ForumApplicationContractsModule.cs b/Print.Forum.Application.Contracts/ForumApplicationContractsModule.cs new file mode 100644 index 0000000..0e9318a --- /dev/null +++ b/Print.Forum.Application.Contracts/ForumApplicationContractsModule.cs @@ -0,0 +1,7 @@ +using Volo.Abp.Modularity; + +namespace Print.Forum.Application.Contracts; + +public class ForumApplicationContractsModule : AbpModule +{ +} \ No newline at end of file diff --git a/Print.Forum.Application.Contracts/Print.Forum.Application.Contracts.csproj b/Print.Forum.Application.Contracts/Print.Forum.Application.Contracts.csproj new file mode 100644 index 0000000..64c4ccd --- /dev/null +++ b/Print.Forum.Application.Contracts/Print.Forum.Application.Contracts.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Print.Forum.Application.Contracts/PrintPictureDto.cs b/Print.Forum.Application.Contracts/PrintPictureDto.cs new file mode 100644 index 0000000..7e177f5 --- /dev/null +++ b/Print.Forum.Application.Contracts/PrintPictureDto.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Print.Forum.Application.Contracts +{ + public class PrintPictureDto + { + ///

+ /// 线体编码 + /// + public string LineCode { get; set; } + /// + /// 租户名称 + /// + public string TenantName { get; set; } + public List Base64Data { get; set; } + public string ip { get; set; } + } +} diff --git a/Print.Forum.Application.Contracts/ResultDto.cs b/Print.Forum.Application.Contracts/ResultDto.cs new file mode 100644 index 0000000..0feee58 --- /dev/null +++ b/Print.Forum.Application.Contracts/ResultDto.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Print.Forum.Application.Contracts +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Text; + + namespace JingGong.Abp.MES + { + public class CommonDto + { + } + + + + public class SelectOptionDto + { + /// + /// 选项类型id + /// + [Description("选项类型id")] + public string Option_Id + { + get; set; + } + /// + /// 选项类型名称 + /// + [Description("选项类型名称")] + public string Option_Name { get; set; } + + + /// + /// 选项扩展 + /// + [Description("选项扩展")] + public string Option_Extend { get; set; } + + } + public class ExecResult + { + + public string ErrorMessage { get; set; } + public bool IsScucess { get; set; } + public int ReturnCode { get; set; } + } + + + /// + /// 通用的操作方法返回类(不携带数据) + /// + [Serializable] + public class ResultDto + { + /// + /// 操作是否成功 + /// + [Description("操作是否成功")] + public bool IsSuccess { get; set; } + + /// + /// 操作提示语 + /// + [Description("操作提示语")] + public string Info { get; set; } + + /// + /// 错误列表 + /// + [Description("错误列表")] + public List ErrorList { get; set; } + + /// + /// 以是否成功和提示语进行初始化 + /// + /// 是否成功 + /// 提示语 + /// 辅助对象 + public ResultDto(bool isSuccess, string info = "") + { + this.IsSuccess = isSuccess; + this.Info = info; + } + /// + /// 用于if语句,直接判断是否成功 + /// + /// + /// + public static implicit operator Boolean(ResultDto t) + { + if (t == null) + { + return false; + } + return t.IsSuccess; + } + } + + /// + /// 通用的操作方法返回类(携带泛型数据) + /// + /// + public class ResultDto : ResultDto + { + /// + /// 携带的辅助对象 + /// + public T Data { get; set; } + + /// + /// 以操作是否成功、提示语、携带数据进行初始化 + /// + /// 是否成功 + /// 提示语 + /// 辅助对象 + public ResultDto(bool isSuccess, string info = "", T data = default(T)) : base(isSuccess, info) + { + this.Data = data; + } + + public ResultDto(ResultDto result) : base(result.IsSuccess, result.Info) + { + this.Data = default(T); + } + + /// + /// 默认构造方法 + /// + public ResultDto() : base(false, string.Empty) + { } + } + } + +} diff --git a/Print.Forum.Domain/ForumDomainModule.cs b/Print.Forum.Domain/ForumDomainModule.cs new file mode 100644 index 0000000..25ed2b1 --- /dev/null +++ b/Print.Forum.Domain/ForumDomainModule.cs @@ -0,0 +1,7 @@ +using Volo.Abp.Modularity; + +namespace Print.Forum.Domain; + +public class ForumDomainModule : AbpModule +{ +} diff --git a/Print.Forum.Domain/Print.Forum.Domain.csproj b/Print.Forum.Domain/Print.Forum.Domain.csproj new file mode 100644 index 0000000..4d59c92 --- /dev/null +++ b/Print.Forum.Domain/Print.Forum.Domain.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Print.Forum.HttpApi.Host/Dockerfile b/Print.Forum.HttpApi.Host/Dockerfile new file mode 100644 index 0000000..6c43bff --- /dev/null +++ b/Print.Forum.HttpApi.Host/Dockerfile @@ -0,0 +1,27 @@ +#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER app +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj", "Print.Forum.HttpApi.Host/"] +COPY ["Print.Application/Print.Application.csproj", "Print.Application/"] +COPY ["Print.Forum.Application.Contracts/Print.Forum.Application.Contracts.csproj", "Print.Forum.Application.Contracts/"] +RUN dotnet restore "./Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj" +COPY . . +WORKDIR "/src/Print.Forum.HttpApi.Host" +RUN dotnet build "./Print.Forum.HttpApi.Host.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./Print.Forum.HttpApi.Host.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "Print.Forum.HttpApi.Host.dll"] \ No newline at end of file diff --git a/Print.Forum.HttpApi.Host/ForumHttpApiHostModule.cs b/Print.Forum.HttpApi.Host/ForumHttpApiHostModule.cs new file mode 100644 index 0000000..5ee2219 --- /dev/null +++ b/Print.Forum.HttpApi.Host/ForumHttpApiHostModule.cs @@ -0,0 +1,73 @@ +using Print.Application; +using Volo.Abp.Autofac; +using Volo.Abp.Modularity; +using Volo.Abp; +using Volo.Abp.AspNetCore.Mvc; + +namespace Print.Forum.HttpApi.Host +{ + + [DependsOn(typeof(AbpAspNetCoreMvcModule), typeof(AbpAutofacModule))] + [DependsOn(typeof(ForumApplicationModule) + )] + public class ForumHttpApiHostModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var services = context.Services; + var configuration = services.GetConfiguration(); + + // 跨域 + context.Services.AddCors(options => + { + options.AddPolicy("AllowAll", builder => + { + builder.AllowAnyOrigin() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod(); + }); + }); + + // 自动生成控制器 + Configure(options => + { + options.ConventionalControllers.Create(typeof(ForumApplicationModule).Assembly); + }); + + // swagger + services.AddSwaggerGen(options => + { + options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo() + { + Title = "ForumApi", + Version = "v0.1" + }); + options.DocInclusionPredicate((docName, predicate) => true); + options.CustomSchemaIds(type => type.FullName); + }); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var env = context.GetEnvironment(); + var app = context.GetApplicationBuilder(); + var configuration = context.GetConfiguration(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseCors("AllowAll"); + app.UseSwagger(); + app.UseSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/v1/swagger.json", "ForumApi"); + }); + + app.UseRouting(); + app.UseConfiguredEndpoints(); + } + } +} diff --git a/Print.Forum.HttpApi.Host/GoDEXPrintController.cs b/Print.Forum.HttpApi.Host/GoDEXPrintController.cs new file mode 100644 index 0000000..8db2fa7 --- /dev/null +++ b/Print.Forum.HttpApi.Host/GoDEXPrintController.cs @@ -0,0 +1,132 @@ +using Microsoft.AspNetCore.Mvc; +using Print.Application; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.MultiTenancy; +using Volo.Abp; +using Print.Forum.Application.Contracts.JingGong.Abp.MES; +using Print.Forum.Application.Contracts; +using Newtonsoft.Json; + +namespace Print.Forum.HttpApi.Host +{ + /// + /// 打印实现 + /// + [RemoteService] + [Area("Print")] + [Route("api/MES/[Controller]")] + public class GoDEXPrintController : AbpController + { + private readonly ILogger _logger; + + + /// + /// 构造方法 + /// + /// + public GoDEXPrintController(ILogger logger, ICurrentTenant currentTenant) + { + _logger = logger; + } + + /// + /// 打印图片文件 + /// + /// + /// + [HttpPost] + [Route("PrintImageFile")] + public ResultDto PrintImageFile(GoDEXPrintImageFile goDEXPrintImageFile) + { + if (goDEXPrintImageFile == null) + return new ResultDto(false, $"参数{nameof(goDEXPrintImageFile)}不可为空!"); + + try + { + var godex = new GoDEXPrint(); + + godex.Print(goDEXPrintImageFile); + + return new ResultDto(true); + } + catch (Exception ex) + { + _logger.LogError(ex, $"打印失败:{goDEXPrintImageFile}"); + + return new ResultDto(false, $"打印失败:{nameof(ex.Message)}"); + } + } + + /// + /// 打印base64格式图片 + /// + /// + /// + [HttpPost] + [Route("PrintBase64Image")] + public ResultDto PrintBase64Image(GoDEXPrintBase64Image goDEXPrintBase64Image) + { + if (goDEXPrintBase64Image == null) + return new ResultDto(false, $"参数{nameof(goDEXPrintBase64Image)}不可为空!"); + + try + { + var godex = new GoDEXPrint(); + + godex.Print(goDEXPrintBase64Image); + + return new ResultDto(true); + } + catch (Exception ex) + { + + return new ResultDto(false, $"打印失败:{nameof(ex.Message)}"); + } + } + + [HttpPost] + [Route("PrintBase64Imagenew")] + public async Task PrintBase64Imagenew(PrintPictureDto input) + { + _logger.LogInformation("1.进入打印接口"); + //切换业务所属的租户 + + GoDEXPrintBase64Image goDEXPrintBase64Image = new GoDEXPrintBase64Image(); + goDEXPrintBase64Image.Communication = new GoDEXCommunication(); + goDEXPrintBase64Image.Communication.Host = input.ip; + goDEXPrintBase64Image.Communication.Port = 9100; + goDEXPrintBase64Image.LabelSetup = new GoDEXPrintSetup(); + goDEXPrintBase64Image.LabelSetup.Height = 70; + goDEXPrintBase64Image.LabelSetup.Speed = 3; + goDEXPrintBase64Image.LabelSetup.Width = 100; + goDEXPrintBase64Image.LabelSetup.Dark = 10; + goDEXPrintBase64Image.PosX = 3; + goDEXPrintBase64Image.PosY = 3; + goDEXPrintBase64Image.Width = 97; + goDEXPrintBase64Image.Height = 67; + goDEXPrintBase64Image.ImageBase64 = input.Base64Data.First(); + + if (goDEXPrintBase64Image == null) + return new ResultDto(false, $"参数{nameof(goDEXPrintBase64Image)}不可为空!"); + + try + { + var godex = new GoDEXPrint(); + + godex.Print(goDEXPrintBase64Image); + + return new ResultDto(true); + } + catch (Exception ex) + { + _logger.LogError(ex, $"打印失败:{JsonConvert.SerializeObject(goDEXPrintBase64Image)}"); + + return new ResultDto(false, $"打印失败:{nameof(ex.Message)}"); + } + return new ResultDto(false, ""); + + } + + } +} diff --git a/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj b/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj new file mode 100644 index 0000000..7d09db0 --- /dev/null +++ b/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.csproj @@ -0,0 +1,25 @@ + + + + net8.0 + enable + enable + be372b4a-f87d-477c-bf6d-7468c93527cd + Linux + + + + + + + + + + + + + + + + + diff --git a/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.http b/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.http new file mode 100644 index 0000000..806d365 --- /dev/null +++ b/Print.Forum.HttpApi.Host/Print.Forum.HttpApi.Host.http @@ -0,0 +1,6 @@ +@Print.Forum.HttpApi.Host_HostAddress = http://localhost:5090 + +GET {{Print.Forum.HttpApi.Host_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/Print.Forum.HttpApi.Host/Program.cs b/Print.Forum.HttpApi.Host/Program.cs new file mode 100644 index 0000000..9a12d34 --- /dev/null +++ b/Print.Forum.HttpApi.Host/Program.cs @@ -0,0 +1,30 @@ +using Print.Forum.HttpApi.Host; +using Serilog.Events; +using Serilog; + +Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("logs/logs.log")) +#if DEBUG + .WriteTo.Async(c => c.Console()) +#endif + .CreateLogger(); + +var builder = WebApplication.CreateBuilder(args); +builder.Host.AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog(); +// Add services to the container. +await builder.AddApplicationAsync(); + +var app = builder.Build(); +// Configure the HTTP request pipeline. +await app.InitializeApplicationAsync(); +await app.RunAsync(); \ No newline at end of file diff --git a/Print.Forum.HttpApi.Host/Properties/launchSettings.json b/Print.Forum.HttpApi.Host/Properties/launchSettings.json new file mode 100644 index 0000000..c915a46 --- /dev/null +++ b/Print.Forum.HttpApi.Host/Properties/launchSettings.json @@ -0,0 +1,52 @@ +{ + "profiles": { + "http": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5090" + }, + "https": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7005;http://localhost:5090" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:20399", + "sslPort": 44333 + } + } +} \ No newline at end of file diff --git a/Print.Forum.HttpApi.Host/appsettings.Development.json b/Print.Forum.HttpApi.Host/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/Print.Forum.HttpApi.Host/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/Print.Forum.HttpApi.Host/appsettings.json b/Print.Forum.HttpApi.Host/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/Print.Forum.HttpApi.Host/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/abp.PrintService.sln b/abp.PrintService.sln new file mode 100644 index 0000000..ebe3a63 --- /dev/null +++ b/abp.PrintService.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Print.Application", "Print.Application\Print.Application.csproj", "{74123FF3-7BDE-4D64-86FA-EB03E825DCFE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Print.Forum.Domain", "Print.Forum.Domain\Print.Forum.Domain.csproj", "{0AD63448-75CE-45C0-89FC-0EC74FE117CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Print.Forum.Application.Contracts", "Print.Forum.Application.Contracts\Print.Forum.Application.Contracts.csproj", "{CB17DC96-5C34-438E-892D-6AC40B80D1EF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Print.Forum.HttpApi.Host", "Print.Forum.HttpApi.Host\Print.Forum.HttpApi.Host.csproj", "{F7289495-78F1-4085-AEA7-5DD0E877BB7E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {74123FF3-7BDE-4D64-86FA-EB03E825DCFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74123FF3-7BDE-4D64-86FA-EB03E825DCFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74123FF3-7BDE-4D64-86FA-EB03E825DCFE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74123FF3-7BDE-4D64-86FA-EB03E825DCFE}.Release|Any CPU.Build.0 = Release|Any CPU + {0AD63448-75CE-45C0-89FC-0EC74FE117CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AD63448-75CE-45C0-89FC-0EC74FE117CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AD63448-75CE-45C0-89FC-0EC74FE117CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AD63448-75CE-45C0-89FC-0EC74FE117CD}.Release|Any CPU.Build.0 = Release|Any CPU + {CB17DC96-5C34-438E-892D-6AC40B80D1EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB17DC96-5C34-438E-892D-6AC40B80D1EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB17DC96-5C34-438E-892D-6AC40B80D1EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB17DC96-5C34-438E-892D-6AC40B80D1EF}.Release|Any CPU.Build.0 = Release|Any CPU + {F7289495-78F1-4085-AEA7-5DD0E877BB7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7289495-78F1-4085-AEA7-5DD0E877BB7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7289495-78F1-4085-AEA7-5DD0E877BB7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7289495-78F1-4085-AEA7-5DD0E877BB7E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/新建 文本文档.md b/新建 文本文档.md new file mode 100644 index 0000000..e69de29