|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  using Aspose.Cells;
 | 
	
		
			
				|  |  |  using Aspose.Words;
 | 
	
		
			
				|  |  | +using Aspose.Words.Drawing;
 | 
	
		
			
				|  |  |  using Aspose.Words.Tables;
 | 
	
		
			
				|  |  |  using Microsoft.AspNetCore.SignalR;
 | 
	
		
			
				|  |  |  using NPOI.HSSF.UserModel;
 | 
	
	
		
			
				|  | @@ -26,6 +27,8 @@ using System.Collections;
 | 
	
		
			
				|  |  |  using System.Data;
 | 
	
		
			
				|  |  |  using System.Diagnostics;
 | 
	
		
			
				|  |  |  using System.Globalization;
 | 
	
		
			
				|  |  | +using System.Reflection.PortableExecutable;
 | 
	
		
			
				|  |  | +using Ubiety.Dns.Core;
 | 
	
		
			
				|  |  |  using static OASystem.Infrastructure.Repositories.Groups.AirTicketResRepository;
 | 
	
		
			
				|  |  |  using Bookmark = Aspose.Words.Bookmark;
 | 
	
		
			
				|  |  |  using Cell = Aspose.Words.Tables.Cell;
 | 
	
	
		
			
				|  | @@ -10729,21 +10732,6 @@ ORDER by  gctggrc.id DESC
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var hrDtas = await _sqlSugar.Queryable<Grp_HotelReservations>()
 | 
	
		
			
				|  |  |                                          .Where(it => it.IsDel == 0 && it.DiId == _dto.DiId)
 | 
	
		
			
				|  |  | -                                        //.Select(x => new
 | 
	
		
			
				|  |  | -                                        //{
 | 
	
		
			
				|  |  | -                                        //    x.CreateTime,
 | 
	
		
			
				|  |  | -                                        //    x.CheckNumber,
 | 
	
		
			
				|  |  | -                                        //    x.ReservationsNo,
 | 
	
		
			
				|  |  | -                                        //    x.DetermineNo,
 | 
	
		
			
				|  |  | -                                        //    x.HotelName,
 | 
	
		
			
				|  |  | -                                        //    x.HotelAddress,
 | 
	
		
			
				|  |  | -                                        //    x.HotelTel,
 | 
	
		
			
				|  |  | -                                        //    x.HotelFax,
 | 
	
		
			
				|  |  | -                                        //    x.CheckInDate,
 | 
	
		
			
				|  |  | -                                        //    x.CheckOutDate,
 | 
	
		
			
				|  |  | -                                        //    x.GuestName,
 | 
	
		
			
				|  |  | -                                        //    x.RoomExplanation,
 | 
	
		
			
				|  |  | -                                        //})
 | 
	
		
			
				|  |  |                                          .OrderBy(x => x.CreateTime)
 | 
	
		
			
				|  |  |                                          .ToListAsync();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -10753,7 +10741,7 @@ ORDER by  gctggrc.id DESC
 | 
	
		
			
				|  |  |              string strFileName = "HotelStatement/";
 | 
	
		
			
				|  |  |              var dele = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == _dto.DiId).FirstAsync();
 | 
	
		
			
				|  |  |              if (dele != null)
 | 
	
		
			
				|  |  | -                strFileName += dele.TourCode;
 | 
	
		
			
				|  |  | +                strFileName += $"{dele.TourCode}_";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var guestDatas = await _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0).ToListAsync();
 | 
	
		
			
				|  |  |              for (int i = 0; i < hrDtas.Count; i++)
 | 
	
	
		
			
				|  | @@ -10803,45 +10791,459 @@ ORDER by  gctggrc.id DESC
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            strFileName += "VOUCHER.docx";
 | 
	
		
			
				|  |  | +            strFileName += $"{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}_VOUCHER.docx";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              Document doc = new Document();
 | 
	
		
			
				|  |  | -            DocumentBuilder builder = new DocumentBuilder(doc);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            DocumentBuilder builder = new DocumentBuilder(doc);
 | 
	
		
			
				|  |  |              try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | +                #region 设置页眉
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                string voucherHeaderPath = $"./Images/VoucherHeader.png";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //靠右
 | 
	
		
			
				|  |  | +                builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
 | 
	
		
			
				|  |  | +                //   设置页脚上下边距
 | 
	
		
			
				|  |  | +                builder.PageSetup.HeaderDistance = 42;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //   添加页眉线
 | 
	
		
			
				|  |  | +                Aspose.Words.Border borderHeader = null;
 | 
	
		
			
				|  |  | +                try
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    borderHeader = builder.ParagraphFormat.Borders.Bottom;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                catch (Exception e)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    // TODO Auto-generated catch block
 | 
	
		
			
				|  |  | +                    //e.printStackTrace();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                borderHeader.Shadow = true;
 | 
	
		
			
				|  |  | +                borderHeader.DistanceFromText = 2;
 | 
	
		
			
				|  |  | +                borderHeader.LineStyle = Aspose.Words.LineStyle.Single;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (System.IO.File.Exists(voucherHeaderPath))
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    //页眉加载图片
 | 
	
		
			
				|  |  | +                    var image = Image.FromFile(voucherHeaderPath);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertImage(image, RelativeHorizontalPosition.Default, 1, RelativeVerticalPosition.Margin, 1, 1.20, 2.70, WrapType.Inline);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +               
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                builder.MoveToDocumentStart();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  foreach (var item in hrDtas)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      //标题
 | 
	
		
			
				|  |  |                      builder.ParagraphFormat.StyleIdentifier = StyleIdentifier.Title;
 | 
	
		
			
				|  |  | -                    builder.Writeln("ACCOMMODATION  VOUCHER");
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.LineSpacing = 1;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    //builder.ParagraphFormat.Style.Font.Size = 12;
 | 
	
		
			
				|  |  | +                    //builder.ParagraphFormat.Style.Font.Bold = true;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
 | 
	
		
			
				|  |  | +                    builder.Writeln(@$"ACCOMMODATION  VOUCHER");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      builder.ParagraphFormat.StyleIdentifier = StyleIdentifier.Title;
 | 
	
		
			
				|  |  | -                    builder.Writeln($"VOUCHER No:{item.CheckNumber}   DATE: {item.CreateTime.ToString("yyyy-MM-dd")}");
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.LineSpacing = 1;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    //builder.ParagraphFormat.Style.Font.Size = 12;
 | 
	
		
			
				|  |  | +                    //builder.ParagraphFormat.Style.Font.Bold = true;
 | 
	
		
			
				|  |  | +                    builder.Writeln(@$"VOUCHER No:{item.CheckNumber}   DATE: {item.CreateTime.ToString("yyyy-MM-dd")}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    //获取Font对象
 | 
	
		
			
				|  |  | +                    Aspose.Words.Font font = builder.Font;
 | 
	
		
			
				|  |  | +                    //字体大小
 | 
	
		
			
				|  |  | +                    font.Size = 8;
 | 
	
		
			
				|  |  | +                    //是否粗体
 | 
	
		
			
				|  |  | +                    font.Bold = false;
 | 
	
		
			
				|  |  | +                    //下划线样式,None为无下划线
 | 
	
		
			
				|  |  | +                    font.Underline = Underline.None;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.StartTable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    //RowFormat rowf = builder.RowFormat;
 | 
	
		
			
				|  |  | +                    //rowf.Height = 20;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    // 设置边框颜色
 | 
	
		
			
				|  |  | +                    builder.CellFormat.Borders.Top.Color = System.Drawing.Color.Black;
 | 
	
		
			
				|  |  | +                    //设置边框样式
 | 
	
		
			
				|  |  | +                    //builder.CellFormat.Borders.Top.LineStyle = Aspose.Words.LineStyle.Double;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.Borders.LineStyle = Aspose.Words.LineStyle.None;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      //表格
 | 
	
		
			
				|  |  | -                    builder.InsertCell(); //插入单元格
 | 
	
		
			
				|  |  | +                    #region 第一行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write("TOUR NO:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"{dele?.TourCode ?? "-"}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"CITY:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.City}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    #region 第二行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write("CONFIRMATION NO:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐
 | 
	
		
			
				|  |  | +                    builder.CellFormat.VerticalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.DetermineNo}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    #region 第三行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"HOTEL NAME:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.HotelName}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  |                      builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | -                    //builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | -                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 - 靠右
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    #region 第四行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"HOTEL ADDRESS:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.HotelAddress}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    #region 第五行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write("TEL:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.HotelTel}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"FAX:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.HotelFax}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    #region 第六行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write("CHECK IN:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    DateTime dtCheckIn = Convert.ToDateTime(item.CheckInDate);
 | 
	
		
			
				|  |  | +                    string checkInStr = dtCheckIn.Day + " " + dtCheckIn.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckIn.Year + " ";
 | 
	
		
			
				|  |  | +                    builder.Write($"{checkInStr}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"CHECK OUT:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    DateTime dtCheckOut = Convert.ToDateTime(item.CheckOutDate);
 | 
	
		
			
				|  |  | +                    string checkOutStr = dtCheckOut.Day + " " + dtCheckOut.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckOut.Year + " ";
 | 
	
		
			
				|  |  | +                    builder.Write($"{checkOutStr}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    #region 第七行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"GUEST NAME:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.GuestName}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    #region 第八行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"ROOM TYPE:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"{item.RoomExplanation}");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    #region 第九行
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;//对齐 
 | 
	
		
			
				|  |  | +                    builder.Write($"NOTE:");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Size = 8;
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Style.Font.Bold = false;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.None;
 | 
	
		
			
				|  |  | +                    builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
 | 
	
		
			
				|  |  | +                    builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//对齐 
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.First;
 | 
	
		
			
				|  |  | +                    builder.Write($"ROOM AND TAX ONLY\r\nTHIS SERVICE IS PAYABLE BY BEDSONLINE. FOR EXTRA CHARGE TO BE COLLECTED FROM THE GUEST");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.InsertCell();
 | 
	
		
			
				|  |  | +                    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);//列宽 - 百分比
 | 
	
		
			
				|  |  | +                    builder.CellFormat.HorizontalMerge = CellMerge.Previous;
 | 
	
		
			
				|  |  | +                    builder.EndRow();
 | 
	
		
			
				|  |  | +                    #endregion
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    builder.EndTable();
 | 
	
		
			
				|  |  | +                    builder.Writeln("");
 | 
	
		
			
				|  |  | +                    builder.Writeln("");
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                //// 遍历文档中的所有段落
 | 
	
		
			
				|  |  | +                //foreach (Paragraph para in doc.GetChildNodes(NodeType.Paragraph, true))
 | 
	
		
			
				|  |  | +                //{
 | 
	
		
			
				|  |  | +                //    // 设置段落的字体样式
 | 
	
		
			
				|  |  | +                //    // 这里我们设置字体为Times New Roman,大小为12,加粗
 | 
	
		
			
				|  |  | +                //    para.ParagraphFormat.Style.Font.Name = "微软雅黑";
 | 
	
		
			
				|  |  | +                //    para.ParagraphFormat.Style.Font.Size = 12;
 | 
	
		
			
				|  |  | +                //    para.ParagraphFormat.Style.Font.Bold = true;
 | 
	
		
			
				|  |  | +                //}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (Exception ex)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                throw;
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              var fileDir = AppSettingsHelper.Get("WordBasePath") + strFileName;
 | 
	
		
			
				|  |  | -            //doc.Save(fileDir);
 | 
	
		
			
				|  |  | +            doc.Save(fileDir);
 | 
	
		
			
				|  |  |              string Url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/" + strFileName;
 | 
	
		
			
				|  |  |              return Ok(JsonView(true, "操作成功!", Url));
 | 
	
		
			
				|  |  |          }
 |