feat:pdf下载优化
parent
502b9bd5d7
commit
73d613ea05
|
|
@ -319,7 +319,7 @@ namespace New_College.Api.Controllers.Front
|
|||
});
|
||||
|
||||
|
||||
var stream = PdfOptHelper.CreatePdf(string.Format("{0}-{1}-{2}", query.VolunteerTableName, query.SubjectClaim, query.Score), unversityheaders.ToList(), majorlistheaders.ToList(), ulist, query.CreateTime.Value);
|
||||
var stream =await PdfOptHelper.CreatePdfAsync(string.Format("{0}-{1}-{2}", query.VolunteerTableName, query.SubjectClaim, query.Score), unversityheaders.ToList(), majorlistheaders.ToList(), ulist, query.CreateTime.Value);
|
||||
|
||||
// 返回 PDF 文件
|
||||
return File(stream.ToArray(), "application/pdf", string.Format("{0}.pdf", DateTime.Now.ToString("yyyyMMddhhssfff_")));
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace PDFGenerateApi
|
|||
/// <param name="majors"></param>
|
||||
/// <param name="dataModels"></param>
|
||||
/// <returns></returns>
|
||||
public static MemoryStream CreatePdf(string pagetitle, List<string> headers, List<string> majors, List<dataModel> dataModels,DateTime dtnow)
|
||||
public static async Task<MemoryStream> CreatePdfAsync(string pagetitle, List<string> headers, List<string> majors, List<dataModel> dataModels, DateTime dtnow)
|
||||
{
|
||||
// 创建内存流
|
||||
using (var stream = new MemoryStream())
|
||||
|
|
@ -59,19 +59,26 @@ namespace PDFGenerateApi
|
|||
// 添加标题下方内容
|
||||
Paragraph subtitle = CreateSubTitle(font, string.Format("最后修改时间:{0}", dtnow.ToString("yyyy-MM-dd HH:mm")));
|
||||
document.Add(subtitle);
|
||||
dataModels.ForEach(a =>
|
||||
|
||||
|
||||
// 创建并行任务队列
|
||||
List<Task> tasks = new List<Task>();
|
||||
Parallel.For(0, dataModels.Count(), tableIndex =>
|
||||
{
|
||||
Table universitytable = HeaderTable(font, 9, headers, new List<dataModel>() { a });
|
||||
universitytable.SetMarginTop(20);
|
||||
document.Add(universitytable);
|
||||
Table majortable = MajorTable(font, 9, majors, a.majorModels);
|
||||
document.Add(majortable);
|
||||
// 手动分页并添加新的表格,不带表头
|
||||
// document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
|
||||
lock (document)
|
||||
{
|
||||
Table universitytable = HeaderTable(font, 9, headers, new List<dataModel>() { dataModels[tableIndex] });
|
||||
universitytable.SetMarginTop(20);
|
||||
document.Add(universitytable);
|
||||
Table majortable = MajorTable(font, 9, majors, dataModels[tableIndex].majorModels);
|
||||
document.Add(majortable);
|
||||
// 添加空白段落以增加表格间的间距
|
||||
document.Add(new Paragraph("\n"));
|
||||
}
|
||||
});
|
||||
|
||||
//专业
|
||||
|
||||
// 等待所有并行任务完成
|
||||
await Task.WhenAll(tasks);
|
||||
// 关闭文档
|
||||
document.Close();
|
||||
// 返回 PDF 文件
|
||||
|
|
|
|||
Loading…
Reference in New Issue