C#如何创建和打印文档?

时间:2011-06-17 01:21:34

标签: c# printing

我在记忆中有时间表,需要能够打印出来。

时间表可能会有很多页面,每个页面看起来都很相似: 横跨水平轴的单元网格是时间,沿垂直轴的单元网格是实体。单元格x,y将包含在时间段y将特定作业分配给实体x。

我在看System.Drawing.Printing.PrintDocument课,但这非常麻烦。我需要为PrintDocument.PrintPage设置一个事件处理程序,但似乎没有办法从PrintPageEventArgs获取页码?

我只想构建我的文档并调用一些Print()函数。我想如果我能在事件处理程序中获取页码,我可以使用e.Graphics和GDI动态构建页面布局。

我甚至可以使用表格打印一个HTML页面并打印 - 如果我能以某种方式控制在哪个页面上打印什么?

有没有更好的方法在C#中构建和打印文档?

目标计算机确实安装了Office,但它们都是不同的版本,我在使用正确版本的.Net / Office互操作库时遇到了很多麻烦。

编辑:我甚至可以动态创建一个临时的LaTeX文件并编译它,然后打印它。这似乎是一个很好的解决方案,除了目标机器被锁定而用户无法安装新软件,因此我需要将LaTeX编译器与我的程序捆绑在一起,而我的编译器几乎是300MB。

3 个答案:

答案 0 :(得分:1)

我使用Microsoft Chart Controls构建了一个类似的工具,易于使用。

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=en

答案 1 :(得分:1)

如果您可以将其保存到文件中,可以在此处使用,

Print images c#.net

答案 2 :(得分:1)

听起来像是你太快放弃了。处理PrintPage事件并不困难,因为事件是按顺序引发的,所以您要做的就是在该事件中保留一个页面计数器。这就是我过去使用MetaFile图像(printing Reporting Services reports通过Web服务调用)的方式。