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 文件
|
// 返回 PDF 文件
|
||||||
return File(stream.ToArray(), "application/pdf", string.Format("{0}.pdf", DateTime.Now.ToString("yyyyMMddhhssfff_")));
|
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="majors"></param>
|
||||||
/// <param name="dataModels"></param>
|
/// <param name="dataModels"></param>
|
||||||
/// <returns></returns>
|
/// <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())
|
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")));
|
Paragraph subtitle = CreateSubTitle(font, string.Format("最后修改时间:{0}", dtnow.ToString("yyyy-MM-dd HH:mm")));
|
||||||
document.Add(subtitle);
|
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 });
|
lock (document)
|
||||||
universitytable.SetMarginTop(20);
|
{
|
||||||
document.Add(universitytable);
|
Table universitytable = HeaderTable(font, 9, headers, new List<dataModel>() { dataModels[tableIndex] });
|
||||||
Table majortable = MajorTable(font, 9, majors, a.majorModels);
|
universitytable.SetMarginTop(20);
|
||||||
document.Add(majortable);
|
document.Add(universitytable);
|
||||||
// 手动分页并添加新的表格,不带表头
|
Table majortable = MajorTable(font, 9, majors, dataModels[tableIndex].majorModels);
|
||||||
// document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
|
document.Add(majortable);
|
||||||
|
// 添加空白段落以增加表格间的间距
|
||||||
|
document.Add(new Paragraph("\n"));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//专业
|
// 等待所有并行任务完成
|
||||||
|
await Task.WhenAll(tasks);
|
||||||
// 关闭文档
|
// 关闭文档
|
||||||
document.Close();
|
document.Close();
|
||||||
// 返回 PDF 文件
|
// 返回 PDF 文件
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue