C#如何创建和打印文档
本文关键字:打印 文档 创建 何创建 | 更新日期: 2023-09-27 17:59:26
我在内存中有一个时间表,需要能够打印出来。
时间表可能有很多页,每一页看起来都很相似:单元格网格,横轴是时间,纵轴是实体。小区x,y将包含在时隙y向实体x分配特定作业。
我在看System.Drawing.Printing.PrintDocument
类,但它非常麻烦。我需要为PrintDocument.PrintPage
设置一个事件处理程序,但似乎没有任何方法可以从PrintPageEventArgs获取页码?
我只想构造我的文档并调用一些Print()函数。我想,如果我能在事件处理程序中获得页码,我就可以用e.Graphics和GDI动态构建页面布局。
如果我能以某种方式控制在什么页面上打印什么,我甚至可以使用表格将HTML页面组合在一起并打印出来?
有没有更好的方法来构造和打印C#中的文档?
目标计算机确实安装了Office,但它们都是不同的版本,我在获取正确版本的时遇到了很多困难。Net/Office互操作库与它们一起工作。
编辑:我甚至可以在运行中创建一个临时的LaTeX文件并编译它,然后打印它。这似乎是一个很好的解决方案,只是目标机器被锁定,用户无法安装新软件,因此我需要将LaTeX编译器与我的程序捆绑在一起,我的编译器几乎是300MB。
听起来你放弃得太早了。处理PrintPage事件并没有那么困难,因为该事件是按顺序引发的,所以您所要做的就是在该事件中保留一个页面计数器。这就是我过去使用MetaFile图像(通过web服务调用打印ReportingServices报告)的方式。
我使用易于使用的Microsoft图表控件构建了一个类似的工具。
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=en
如果你能把它保存到一个文件中,你可以在这里使用它,
打印图像c#.net