框架集:.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);//书签1builder.MoveToBookmark("chejian");builder.Write(info.Dangzhibu_name);//书签2builder.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");
}