
/// <summary>
/// 下载准考证
/// </summary>
/// <param name="examPlanId"></param>
/// <returns></returns>public ActionResult DownZKZ(int examPlanId)
{var faceImages = FaceImageContract.GetFaceImages(m => m.PersonalId==personalId && !m.IsDelete).FirstOrDefault();
if (faceImages == null)
{
return Json(new { success = false, msg = "请先上传头像" });
}
var document = new Aspose.Words.Document(Server.MapPath("/准考证模板.doc"));
var builder = new Aspose.Words.DocumentBuilder(document);
var table = document.GetChildNodes(Aspose.Words.NodeType.Table, true)[0] as Aspose.Words.Tables.Table;//克隆table
var lastTable = table;
#region 每人一页 开始已默认有一页
for (int i = 1; i < enrollInfos.Count; i++)
{
var newTable = (Aspose.Words.Tables.Table)lastTable.Clone(true);
//创建段落
var paragraph = new Aspose.Words.Paragraph(document);
//第一个表格末尾加段落
lastTable.ParentNode.InsertAfter(paragraph, lastTable);
Aspose.Words.Run pageBreakRun = new Aspose.Words.Run(document, Aspose.Words.ControlChar.PageBreak);
paragraph.AppendChild(pageBreakRun);
lastTable.ParentNode.InsertAfter(newTable, paragraph);
lastTable = newTable;
}
#endregion
//考生须知
var needKnow = "不得遗失、涂改、转借$考试开始 15 分钟后考生不得进入考场,考试开始 30 分钟考生方可交卷离开考场$考生必须对号入座,保持安静,遵守考场规则";
var examNeedKnows = needKnow.Split(new char[] { '$' }, StringSplitOptions.RemoveEmptyEntries).ToList();
for (int i = 0; i < enrollInfos.Count; i++)
{
var tableIndex = i;
var student = enrollInfos[i];
//准考证号
builder.MoveToCell(tableIndex, 2, 1, 0);
builder.Write("xxxxxxx");
//姓名
builder.MoveToCell(tableIndex, 2, 3, 0);
builder.Write("张三");
//图片
builder.MoveToCell(tableIndex, 2, 4, 0);
builder.InsertHtml($"<img src='{faceImages?.Url}' width='106' height='123'>");
//考试科目
builder.MoveToCell(tableIndex, 3, 1, 0);
builder.Write("语文");
//考点
builder.MoveToCell(tableIndex, 4, 1, 0);
builder.Write(departmentInfo?.Name);
//考试时间
builder.MoveToCell(tableIndex, 5, 1, 0);
builder.Write($"{examBeginTime:yyyy-MM-dd HH:mm:ss} 至 {examEndTime:HH:mm:ss}");
//考试地址
builder.MoveToCell(tableIndex, 6, 1, 0);
builder.Write(examAddress);
//考生须知
if (examNeedKnows.Count() > 0)
{
builder.MoveToCell(tableIndex, 8, 0, 0);
for (int j = 0; j < examNeedKnows.Count; j++)
{
builder.Write(j + 1 + "." + examNeedKnows[j]);
builder.Writeln();
}
}
}
using (var stream = new MemoryStream())
{
document.Save(stream, Aspose.Words.SaveFormat.Pdf);
return File(stream.ToArray(), "application/pdf", "语文(准考证).pdf");
}
}