lixiaojun
2024-12-30 c22cc4c60e9ff156fc25b39a5c024cc758df354b
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/00-core/SimulationWordReportHelper.cs
@@ -1,4 +1,7 @@
using Aspose.Words;
using SkiaSharp;
using System.Drawing.Imaging;
using System.Drawing;
namespace HStation.WinFrmUI
{
@@ -272,7 +275,7 @@
        /// <param name="content"></param>
        public void AddBlankLine()
        {
             _builder.Writeln();
            _builder.Writeln();
        }
        /// <summary>
@@ -306,6 +309,55 @@
        }
        /// <summary>
        /// 构建图片  (同一行多个图片)
        /// </summary>
        /// <param name="addresses">图片地址列表</param>
        /// <param name="height">图片高度</param>
        /// <param name="width">图片宽度</param>
        /// <param name="spacing">图片之间的间距</param>
        public void structureImagesInRow(List<string> addresses, int height, int width)
        {
            _builder.ParagraphFormat.Alignment = _fontalignment;
            _builder.SetBuilderFont(_font, _fontSize, _fontcolor, _isBlod);
            foreach (var address in addresses)
            {
                if (!System.IO.File.Exists(address))
                {
                    continue; // 如果文件不存在,则跳过该图片
                }
                _builder.InsertImage(address, width, height);
            }
            _builder.Writeln(""); // 在所有图片插入后添加一个换行
        }
        /// <summary>
        /// 构建图片
        /// </summary>
        /// <param name="content">文字内容</param>
        /// <param name="BitMap">图片地址</param>
        public void structureTextAndImage(Bitmap BitMap, int height, int wide)
        {
            using (var stream = new MemoryStream())
            {
                // 将System.Drawing.Bitmap保存到内存流中
                BitMap.Save(stream, ImageFormat.Png);
                stream.Position = 0;
                // 使用SKManagedStream从内存流中解码出SKBitmap
                using (var skManagedStream = new SKManagedStream(stream))
                {
                    var skBitmap = SKBitmap.Decode(skManagedStream);
                    _builder.ParagraphFormat.Alignment = _fontalignment;
                    _builder.SetBuilderFont(_font, _fontSize, _fontcolor, _isBlod);
                    _builder.InsertImage(skBitmap, wide, height);
                    _builder.Writeln("");
                }
            }
        }
        /// <summary>
        /// 构建图片
        /// </summary>
        /// <param name="address"></param>
@@ -327,7 +379,7 @@
        public void structureCell(string content)
        {
            _builder.ParagraphFormat.FirstLineIndent = 0;
             _builder.ParagraphFormat.LeftIndent = 2;
            _builder.ParagraphFormat.LeftIndent = 2;
            var cell = _builder.InsertCell();
            //_builder.InsertParagraph(); // 添加一个新段落
            //_builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; // 设置段落垂直居中