ソースを参照

添加条形码生成

heteng 3 年 前
コミット
96034be0da

+ 3 - 0
.gitignore

@@ -1981,3 +1981,6 @@ MicroServices/Business/Bussiness.EntityFrameworkCore.Test/bin/Debug/net6.0/Spire
 MicroServices/Business/Bussiness.EntityFrameworkCore.Test/bin/Debug/net6.0/runtimes/unix/lib/netcoreapp2.0/System.Drawing.Common.dll
 MicroServices/Business/Bussiness.EntityFrameworkCore.Test/bin/Debug/net6.0/runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll
 MicroServices/Business/Bussiness.EntityFrameworkCore.Test/bin/Debug/net6.0/runtimes/win/lib/netcoreapp2.0/System.Drawing.Common.dll
+MicroServices/Business/Bussiness.ApplicationTest/bin/Debug/net6.0/Mongo2Go.dll
+MicroServices/Business/Bussiness.Domain.Test/bin/Debug/net6.0/Mongo2Go.dll
+MicroServices/Business/Bussiness.EntityFrameworkCore.Test/bin/Debug/net6.0/Mongo2Go.dll

+ 33 - 3
MicroServices/Business/Business.Core/Utilities/QRcodeHelper.cs

@@ -34,6 +34,7 @@ namespace Business.Core.Utilities
             Spire.Barcode.BarcodeSettings settings = new BarcodeSettings();
             settings.Type = BarCodeType.QRCode;
             settings.Data = context;
+            settings.Data2D = context;
             settings.X = 0.7f;
             settings.LeftMargin = 0;
             settings.ShowText = false;
@@ -59,9 +60,38 @@ namespace Business.Core.Utilities
         /// <summary>
         /// 生成条形码
         /// </summary>
-        public void GenerateBarcode()
-        { 
-        
+        /// <param name="filePath"></param>
+        /// <param name="context"></param>
+        public void GenerateBarcode(string filePath, string context, string savePath)
+        {
+            PdfDocument pdf = new PdfDocument();
+            //读取文件
+            pdf.LoadFromFile(filePath);
+            PdfPageBase pb = pdf.Pages.Add();
+            pdf.Pages.Remove(pb);
+
+            //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建条形码图形
+            Spire.Barcode.BarcodeSettings settings = new BarcodeSettings();
+            settings.Type = BarCodeType.Codabar;
+            settings.Data = context;
+            settings.Data2D = context;
+            settings.ShowText = false;
+            settings.ShowTopText = false;
+            settings.ShowTextOnBottom = false;
+            settings.ShowCheckSumChar = false;
+            Spire.Barcode.BarCodeGenerator generator = new BarCodeGenerator(settings);
+            Image image = generator.GenerateImage(new Size(40,20));
+
+            //绘制二维码图形到PDF
+            PdfImage pdfImage = PdfImage.FromImage(image);
+            for (int i = 0; i < pdf.Pages.Count; i++)
+            {
+                var page = pdf.Pages[i];
+                page.Canvas.DrawImage(pdfImage, page.Size.Width / 2 - pdfImage.Width / 2, page.Size.Height - pdfImage.Height);
+            }
+
+            //保存文档
+            pdf.SaveToFile(savePath);
         }
     }
 }

+ 16 - 1
MicroServices/Business/Business.HttpApi/Controllers/QRcodeController.cs

@@ -19,7 +19,7 @@ namespace Business.Controllers
     public class QRcodeController : AbpController
     {
         /// <summary>
-        /// 雪花算法
+        /// 生成二维码
         /// </summary>
         /// <returns></returns>
         [HttpGet]
@@ -30,5 +30,20 @@ namespace Business.Controllers
             string context = "AXSCK230201473";
             qRcode.GenerateQrCode(filePath, context);
         }
+
+        /// <summary>
+        /// 生成条形码
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("barcode")]
+        public void GenerateBarcode(int i)
+        {
+            QRcodeHelper qRcode = new QRcodeHelper();
+            string filePath = @"D:\test\测试pdf.pdf";
+            string savePath = @"D:\test\测试pdf" + i + ".pdf";
+            string context = "AXSCK230201473";
+            qRcode.GenerateBarcode(filePath, context, savePath);
+        }
     }
 }