框架集:.NET8
public async Task<IActionResult> ExportPDF(long? id)
{
var info=await form_Dahui_ReportDao.GetAsync(id);
if (info == null)
{
return Content("没找到数据");
}
//读取word模板
string fileTemp = Path.Combine(AppContext.BaseDirectory, "temp_reportDahui.docx");
Aspose.Words.Document doc = new Aspose.Words.Document(fileTemp);
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
//书签1
builder.MoveToBookmark("chejian");
builder.Write(info.Dangzhibu_name);
//书签2
builder.MoveToBookmark("chejian2");
builder.Write(info.Dangzhibu_name);
builder.MoveToBookmark("chejina3");
builder.Write(info.Dangzhibu_name);
//内存流处理
Stream stream = new System.IO.MemoryStream();
try
{
//doc.Save(stream, Aspose.Words.SaveFormat.Pdf);//导出pdf文件
doc.Save(stream, Aspose.Words.SaveFormat.Doc);//导出word文件
stream.Seek(0, SeekOrigin.Begin);
}
catch (Exception ex)
{
string msg = ex.Message;
return Content("导出出错="+ msg );
}
string fileName = $"{info.Dangzhibu_name}_{info.Createtime.Value.ToString("yyyyMMdd")}";
if (fileName.IndexOf("\\") >= 0
|| fileName.IndexOf("/") >= 0
|| fileName.IndexOf(":") >= 0
|| fileName.IndexOf("*") >= 0
|| fileName.IndexOf("?") >= 0
|| fileName.IndexOf("<") >= 0
|| fileName.IndexOf(">") >= 0
|| fileName.IndexOf("|") >= 0
)
{
fileName = fileName.Replace("\\", "_");
fileName = fileName.Replace("/", "_");
fileName = fileName.Replace(":", "_");
fileName = fileName.Replace("*", "_");
fileName = fileName.Replace("?", "_");
fileName = fileName.Replace("<", "_");
fileName = fileName.Replace(">", "_");
fileName = fileName.Replace("|", "_");
}
//return File(stream, "application/pdf ", $"{fileName}.pdf");
return File(stream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", $"{fileName}.docx");
}