gpt4 book ai didi

c# - 使用 FastReport.net 和 asp.net 导出 pdf

转载 作者:行者123 更新时间:2023-11-30 13:58:10 25 4
gpt4 key购买 nike

如何使用 FastReport.netasp.net 导出 pdf?我想在 Controller 中导出文件。我在FastReport网站上支持这种方式试过:

public FileResult GetFile()
{
WebReport webReport = new WebReport();

// bind data
System.Data.DataSet dataSet = new System.Data.DataSet();
dataSet.ReadXml(report_path + "nwind.xml");
webReport.Report.RegisterData(dataSet, "NorthWind");

// load report
webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx");

// prepare report
webReport.Report.Prepare();

// save file in stream
Stream stream = new MemoryStream();
webReport.Report.Export(new PDFExport(), stream);
stream.Position = 0;

// return stream in browser
return File(stream, "application/zip", "report.pdf");
}

但是 pdf 的大小总是 0 字节。

有人知道我的问题的解决方案吗?

最佳答案

好的,现在我找到了解决方案。只需使用普通的 Report(不是 WebReport)并将 WebMode 设置为 true。 pdf-Export 的其他设置只是为了好玩。

所以,这将起到作用:

public FileResult GetFile(Dataset dataset1)
{
FastReport.Utils.Config.WebMode = true;
Report rep = new Report();
rep.Load(Request.PhysicalApplicationPath + "App_Data/report.frx");

rep.RegisterData(dataset1);

if (rep.Report.Prepare())
{
// Set PDF export props
FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();
pdfExport.ShowProgress = false;
pdfExport.Subject = "Subject";
pdfExport.Title = "xxxxxxx";
pdfExport.Compressed = true;
pdfExport.AllowPrint = true;
pdfExport.EmbeddingFonts = true;

MemoryStream strm = new MemoryStream();
rep.Report.Export(pdfExport, strm);
rep.Dispose();
pdfExport.Dispose();
strm.Position = 0;

// return stream in browser
return File(strm, "application/pdf", "report.pdf");
}
else
{
return null;
}
}

遗憾的是,开发者官网上这样的代码模板是错误的。

关于c# - 使用 FastReport.net 和 asp.net 导出 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18100788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com