背景:我需要为我的销售人员提供每周报告包。该包包含几个(5-10)个水晶报告。
Problem:我想允许用户运行所有报告并且只运行单个报告。我想我可以通过创建报告然后执行以下操作来做到这一点:
List<ReportClass> reports = new List<ReportClass>();
reports.Add(new WeeklyReport1());
reports.Add(new WeeklyReport2());
reports.Add(new WeeklyReport3());
<snip>
foreach (ReportClass report in reports)
{
report.ExportToDisk(ExportFormatType.PortableDocFormat, @"c:\reports\" + report.ResourceName + ".pdf");
}
这将为我提供一个装满报告的文件夹,但我想通过电子邮件向每个人发送一份包含所有每周报告的 PDF 文件。所以我需要将它们结合起来。
有没有一种简单的方法可以在不安装任何第三方控件的情况下做到这一点?我已经有了 DevExpress 和 CrystalReports,我不想添加太多。
最好将它们组合在 foreach 循环中还是单独的循环中? (或另一种方式)
我必须解决类似的问题,我最终做的是创建一个小型 pdfmerge 实用程序,该实用程序使用PDFSharp http://www.pdfsharp.net/该项目本质上是麻省理工学院许可的。
代码非常简单,我需要一个命令行实用程序,因此与 PDF 合并相比,我有更多的代码专门用于解析参数:
using (PdfDocument one = PdfReader.Open("file1.pdf", PdfDocumentOpenMode.Import))
using (PdfDocument two = PdfReader.Open("file2.pdf", PdfDocumentOpenMode.Import))
using (PdfDocument outPdf = new PdfDocument())
{
CopyPages(one, outPdf);
CopyPages(two, outPdf);
outPdf.Save("file1and2.pdf");
}
void CopyPages(PdfDocument from, PdfDocument to)
{
for (int i = 0; i < from.PageCount; i++)
{
to.AddPage(from.Pages[i]);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)