一段时间以来,我们一直在开发基于 Web 的系统。我们的客户通常习惯于桌面应用程序,我们通常会将他们的系统升级到基于 Web 的版本。这对他们有很多好处,但我们经常遇到一个缺点:打印输出。我们开发的系统经常会生成一些需要打印的文档,比如:
- 发票
- 收据
- 订单信息
- 说明书
- 检查
其中许多文档具有预先确定的格式,并且应该以相同或非常相似的方式出现。然而,这往往是一种痛苦。遇到的问题包括:
- 浏览器经常打印页眉和页脚(页码、日期等),只有客户端可以控制。
- 某些打印样式的支持很差(例如
page-break-inside
),这使得很难控制信息在哪里被截断。 - 页边距和纸张大小无法由应用程序控制,并且需要用户在每次需要打印特定文档时更改此设置。
- 根据我的经验,作为普通用户,更改纸张大小和方向甚至是一件痛苦的事情。由于某种原因,浏览器不会立即显示纸张大小的变化,对于许多客户,我不得不指示他们更改纸张大小,然后单击“更改纸张方向”两次(从水平到垂直再返回水平),以便正确预览新的纸张尺寸。
- 网络浏览器不能(可以理解)自动打印文档。因此,要直接从网络应用程序打印收据,我必须在每个客户端上安装本地网络服务器并调用本地网页,作为回报,它使用一种编程语言(在我的情况下为 PHP)运行脚本本地打印。相当的回旋处。
总而言之,事实证明,生成非常专门设计的文档并以同样的方式打印它们需要花费太多时间和精力,而且效果不佳。我的问题是:是否有人也处理过这个问题,并找到了更好的解决方案?我目前的解决方案是投入大量时间,尝试教育用户,记录用户为获得首选打印输出所需采取的所有步骤,并随着人员、计算机和打印机的变化不断重复。