加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 计算要打印的页数的有效方法?

发布时间:2020-12-15 07:51:02 所属栏目:百科 来源:网络整理
导读:TLDR 如何有效地确定必须打印的页面数量? **只是一个注释:我将klugerama的答案标记为我的问题的答案.我仍然愿意接受其他建议! 目前,我在生产中有一个打印发票的应用程序.打印本身不是问题:客户信息,发票详细信息等应按原样打印.但是,用户抱怨我的软件将
TLDR
如何有效地确定必须打印的页面数量?

**只是一个注释:我将klugerama的答案标记为我的问题的答案.我仍然愿意接受其他建议!

目前,我在生产中有一个打印发票的应用程序.打印本身不是问题:客户信息,发票详细信息等应按原样打印.但是,用户抱怨我的软件将打印作业发送到打印机所花费的时间.

目前,我已经实施了一种相当低效的打印方式.为了知道我需要打印多少页,我会对打印作业进行“干运行”并在将其发送到打印机之前将其取消.然后,我计算打印作业包含的页数,并将该信息添加到实际发送到打印机的打印作业.要做到这一点,我’滥用’PrintDocument.PrintPage方法.这样做之后,我可以打印“Page 1/2 – Page 2/2”等.

我目前正在考虑以不同的方式处理这个问题.我知道我在页面中有哪些边距,比如页眉和页脚.因此,页眉和页脚之间的空间是打印文章信息(名称,价格等)的可用空间.如果我计算字符串的高度(使用Graphics.MeasureString),我可以判断文章在可用于打印的页面上占用更多空间.

以前,在实际发送到打印机之前打印可能需要一分钟(考虑到运行软件的客户端并不是最快的).我已经实现了这种方法,现在打印大约需要5-10秒.但是,我想知道这是否可行.我无法想象我是唯一一个处理这个问题的人;你怎么处理这个?

我也对完全不同的方法持开放态度.

解决方法

你在做什么听起来像是要走的路.但…

您可以改为输出到XML并使用XSLT来设置输出样式,这将为您处理分页.请注意,这可能需要相当大的重构努力,因此根据您的情况,它可能不可行,但它是一种选择.

它还将提供一些潜在的灵活性,因为它提供了更加模块化的方法.这样您就可以更轻松地提供其他输出选项,例如HTML& PDF.它还可以使“打印预览”更容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读