TLDR 如何有效地确定必须打印的页数?
** 请注意:我将 klugerama 的答案标记为我的问题的答案。不过,我仍然愿意接受其他建议!
目前,我有一个打印发票的生产应用程序。打印本身不是问题:客户信息、发票详细信息等按原样打印。但是,用户抱怨我的软件将打印作业发送到打印机所花费的时间。
目前,我实施了一种相当低效的打印方式。为了知道我必须打印多少页,我对打印作业进行了“试运行”并在将其发送到打印机之前将其取消。然后我计算打印作业包含的页数,并将该信息添加到实际发送到打印机的打印作业中。为此,我“滥用”了PrintDocument.PrintPage方法。这样做之后,我可以打印“Page 1/2 - Page 2/2”等。
我目前正在考虑以不同的方式处理这个问题。我知道页面中有哪些边距,例如页眉和页脚。因此,页眉和页脚之间的空间是打印文章信息(名称、价格等)的可用空间。如果我计算字符串的高度(使用Graphics.MeasureString),我可以判断文章何时占用了可用于打印的页面上的更多空间。
以前,打印在实际发送到打印机之前可能需要一分钟(考虑到运行该软件的客户端并不是最快的)。我已经实现了这个方法,现在打印大约需要 5-10 秒。但是,我想知道这是否是要走的路。我无法想象我是唯一一个处理这个问题的人。你怎么处理这个?
我也对完全不同的方法持开放态度。