2017-04-05 70 views
0

我的客户给了我一些Word和Powerpoint文档,它们指定我们的产品生成的某些“报告”应该是什么样子。.Net中基于简单模板的PDF报告

这意味着,我需要修改这些文件(替换占位符等),然后我需要将它们导出为PDF。

如何解决C#中的这个问题?

TL; DR:编辑office文档根本没有问题,但是将该文档导出为PDF(使用Interop)涉嫌将其作为Web服务器应用程序运行时导致出现问题。这是整个问题。

回答

0

我同意Interop不适合在服务器环境中进行文档操作。我将通过使用占位符为数据准备MS Word模板文档来解决此问题。然后,我将使用c#加载报告数据,并将数据与模板合并以获取最终文档(docx,pdf,xps或各种图像格式)。有第三方工具包,使它很容易。下面是需要合并XML数据与模板得到一个PDF文档这样一个toolkit使用的代码:

XElement customers = XElement.Load("Customers.xml"); 
DocumentGenerator dg = new DocumentGenerator(customers); 
DocumentGenerationResult result = dg.GenerateDocument("MyTemplate.docx", "MyReport.pdf"); 

当然你也可以还使用基于OpenXML的免费库和SDK,但你应该期待一个陡峭的学习曲线,大量的调试和大量的时间投入。

0

一个完全不同的“报告方法”可能是,将这些办公文档的占位符保存为mht(即MHTML a web archive format)。这可以直接在MS Office中完成,甚至可以在programatically中完成。

占位符可以通过字符串搜索和替换轻松交换。 mht文件可以直接用来显示报告而不是PDF。 HTML格式的一个明显的缺点是mht格式。使用PDF,您可以清晰地定位。

我们正在使用这种报告创建。有一些缺陷,但它可以工作,并且客户可以通过右键单击打开 - 用首选MS Office风格直接编辑mht模板。

0

您可以使用报告生成器,如FastReport.Net来解决您的问题。它可以为占位符分配不同的数据,并允许导出为PDF。