从Windows服务打印报告

时间:2009-04-07 11:37:18

标签: c# pdf windows-services printing reporting

我们需要定期从Windows服务打印报告,我们使用.NET 2.0 我们有以PDF格式或HTML文件格式生成此报告的模块,PDF会更好,因为我们可以更好地控制报告的外观。
我们还有用户名,密码和为任务选择的打印机名称。 我搜索并研究了几种如何从Windows服务打印PDF文件的选项,即从命令行使用Acrobat Reader,但无法使其正常工作。
Acrobat Reader似乎不可靠且难以使用,我们也需要保证它安装在我们的客户机器上。
您是否有解决方案,可能是第三方组件?
感谢

5 个答案:

答案 0 :(得分:1)

如果你被迫使用Acrobat,你可能会或可能没有看到我问过这个here的问题,这可能会给你一些提示。

否则,此商业第三方组件将执行您想要的操作 - abcpdf。这是线程安全的BTW。

P.S。您需要专业版,因为只有专业版支持渲染。

答案 1 :(得分:1)

我们发现这个名为pdfprint#的开源库隐藏的珍珠正是我们所需要的。
它似乎基于XPDF,它是C ++中的一个开源库 作者在论坛中写道:“打印机 具有后脚本功能,库将原始postscript发送到打印机。”我想知道(并担心)这会有多大问题...... 谢谢大家的帮助!

答案 2 :(得分:0)

您是否能够执行命令行工具? (例如,您使用的是Application NOT网站(hta也应该有效))

如果是这样,也许使用Crystal Reports(将导出类型设置为PDF)与免费导出工具(在Google上搜索crexport)是一个很好的解决方案。

还有很多用于.NET的PDF导出组件,也许编写自己的命令行应用程序就足够了?

答案 3 :(得分:0)

我听到客户使用ActiveReports运行报告并从服务中打印报告,这是一种非常常见的情况。关于使用ActiveReports的另一个好处是,除了能够打印报告之外,您还可以将相同的报告保存为PDF,HTML或Excel,而不必对报告进行任何更改。

Scott Willeke
Data Dynamics / GrapeCity

答案 4 :(得分:0)

如果您使用的是Crystal Reports,则可以使用Crystal Report的内置选项使用此类代码打印报告。

oReport.PrintOptions.PrinterName = "PrinterName";
oReport.PrintToPrinter(1, true, 0, 0);

或者您可以在此处列出其他选项How to send raw data to a printer