我在记忆中有时间表,需要能够打印出来。
时间表可能会有很多页面,每个页面看起来都很相似: 横跨水平轴的单元网格是时间,沿垂直轴的单元网格是实体。单元格x,y将包含在时间段y将特定作业分配给实体x。
我在看System.Drawing.Printing.PrintDocument
课,但这非常麻烦。我需要为PrintDocument.PrintPage
设置一个事件处理程序,但似乎没有办法从PrintPageEventArgs获取页码?
我只想构建我的文档并调用一些Print()函数。我想如果我能在事件处理程序中获取页码,我可以使用e.Graphics和GDI动态构建页面布局。
我甚至可以使用表格打印一个HTML页面并打印 - 如果我能以某种方式控制在哪个页面上打印什么?
有没有更好的方法在C#中构建和打印文档?
目标计算机确实安装了Office,但它们都是不同的版本,我在使用正确版本的.Net / Office互操作库时遇到了很多麻烦。
编辑:我甚至可以动态创建一个临时的LaTeX文件并编译它,然后打印它。这似乎是一个很好的解决方案,除了目标机器被锁定而用户无法安装新软件,因此我需要将LaTeX编译器与我的程序捆绑在一起,而我的编译器几乎是300MB。
答案 0 :(得分:1)
我使用Microsoft Chart Controls构建了一个类似的工具,易于使用。
答案 1 :(得分:1)
如果您可以将其保存到文件中,可以在此处使用,
答案 2 :(得分:1)
听起来像是你太快放弃了。处理PrintPage事件并不困难,因为事件是按顺序引发的,所以您要做的就是在该事件中保留一个页面计数器。这就是我过去使用MetaFile图像(printing Reporting Services reports通过Web服务调用)的方式。