QRcodeHelper.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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.X = 0.7f;
  36. settings.LeftMargin = 0;
  37. settings.ShowText = false;
  38. settings.AutoResize=true;
  39. settings.ShowCheckSumChar = false;
  40. settings.QRCodeECL = QRCodeECL.Q;
  41. settings.QRCodeDataMode = QRCodeDataMode.Numeric;
  42. Spire.Barcode.BarCodeGenerator generator = new BarCodeGenerator(settings);
  43. Image image = generator.GenerateImage(new Size(20,20));
  44. //绘制二维码图形到PDF
  45. PdfImage pdfImage = PdfImage.FromImage(image);
  46. for (int i = 0; i < pdf.Pages.Count; i++)
  47. {
  48. var page = pdf.Pages[i];
  49. page.Canvas.DrawImage(pdfImage, page.Size.Width - pdfImage.Width + 9, 0);
  50. }
  51. //保存文档
  52. pdf.SaveToFile(filePath);
  53. }
  54. /// <summary>
  55. /// 生成条形码
  56. /// </summary>
  57. public void GenerateBarcode()
  58. {
  59. }
  60. }
  61. }