QRcodeHelper.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using SharpCompress.Common;
  2. using Spire.Barcode;
  3. using Spire.Pdf;
  4. using Spire.Pdf.Graphics;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using static System.Formats.Asn1.AsnWriter;
  12. namespace Business.Core.Utilities
  13. {
  14. /// <summary>
  15. /// 二维码生成工具
  16. /// </summary>
  17. public class QRcodeHelper
  18. {
  19. /// <summary>
  20. /// 生成二维码
  21. /// </summary>
  22. /// <param name="filePath"></param>
  23. /// <param name="context"></param>
  24. public void GenerateQrCode(string filePath, string context)
  25. {
  26. PdfDocument pdf = new PdfDocument();
  27. //读取文件
  28. pdf.LoadFromFile(filePath);
  29. PdfPageBase pb = pdf.Pages.Add();
  30. pdf.Pages.Remove(pb);
  31. //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建二维码图形
  32. Spire.Barcode.BarcodeSettings settings = new BarcodeSettings();
  33. settings.Type = BarCodeType.QRCode;
  34. settings.Data = context;
  35. settings.Data2D = context;
  36. settings.X = 0.7f;
  37. settings.LeftMargin = 0;
  38. settings.ShowText = false;
  39. settings.AutoResize=true;
  40. settings.ShowCheckSumChar = false;
  41. settings.QRCodeECL = QRCodeECL.Q;
  42. settings.QRCodeDataMode = QRCodeDataMode.Numeric;
  43. Spire.Barcode.BarCodeGenerator generator = new BarCodeGenerator(settings);
  44. Image image = generator.GenerateImage(new Size(20,20));
  45. //绘制二维码图形到PDF
  46. PdfImage pdfImage = PdfImage.FromImage(image);
  47. for (int i = 0; i < pdf.Pages.Count; i++)
  48. {
  49. var page = pdf.Pages[i];
  50. page.Canvas.DrawImage(pdfImage, page.Size.Width - pdfImage.Width + 9, 0);
  51. }
  52. //保存文档
  53. pdf.SaveToFile(filePath);
  54. }
  55. /// <summary>
  56. /// 生成条形码
  57. /// </summary>
  58. /// <param name="filePath"></param>
  59. /// <param name="context"></param>
  60. public void GenerateBarcode(string filePath, string context, string savePath)
  61. {
  62. PdfDocument pdf = new PdfDocument();
  63. //读取文件
  64. pdf.LoadFromFile(filePath);
  65. PdfPageBase pb = pdf.Pages.Add();
  66. pdf.Pages.Remove(pb);
  67. //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator类创建条形码图形
  68. Spire.Barcode.BarcodeSettings settings = new BarcodeSettings();
  69. settings.Type = BarCodeType.Codabar;
  70. settings.Data = context;
  71. settings.Data2D = context;
  72. settings.ShowText = false;
  73. settings.ShowTopText = false;
  74. settings.ShowTextOnBottom = false;
  75. settings.ShowCheckSumChar = false;
  76. Spire.Barcode.BarCodeGenerator generator = new BarCodeGenerator(settings);
  77. Image image = generator.GenerateImage(new Size(40,20));
  78. //绘制二维码图形到PDF
  79. PdfImage pdfImage = PdfImage.FromImage(image);
  80. for (int i = 0; i < pdf.Pages.Count; i++)
  81. {
  82. var page = pdf.Pages[i];
  83. page.Canvas.DrawImage(pdfImage, page.Size.Width / 2 - pdfImage.Width / 2, page.Size.Height - pdfImage.Height);
  84. }
  85. //保存文档
  86. pdf.SaveToFile(savePath);
  87. }
  88. }
  89. }