【发布时间】:2016-03-05 22:23:58
【问题描述】:
我有一个报告 rdlc,我刚刚从 vs 2010 迁移到 vs 2012,我正在使用一种方法将 rdlc 文件转换为 pdf 文件并通过电子邮件发送报告。
电子邮件发送成功,但报告抛出此错误:“Referencia a objeto no establecida como instancia de un objeto”。
我猜是我将 rdlc 文件转换为 pdf 时发生了一些事情,然后报告无法读取。
这是我用来将rdlc转换为pdf的方法。
private string ExportReportToPDF(string reportName)
{
try
{
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes = ReportViewer1.LocalReport.Render(
"PDF", null, out mimeType, out encoding, out filenameExtension,
out streamids, out warnings);
string filename = Path.Combine(Path.GetTempPath(), reportName)+".pdf";
using (var fs = new FileStream(filename, FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
return filename;
}
catch (Exception err)
{
// Throws error
}
}
之后我只是将文件添加到邮件中并发送。
有什么建议吗?
【问题讨论】:
-
我发现当我运行以下代码时,reportviewer 改变了它的格式(或者丢失了引用,或者它已经初始化了): ReportViewer1.LocalReport.Render( "PDF", null, out mimeType , out encoding, out filenameExtension, out streamids, out warnings);有没有另一种不使用render方法将rdlc转换为pdf的方法?
-
您可以查看 iTextSharp 作为替代方案。
标签: c# asp.net pdf visual-studio-2012 rdlc