显然关于以A4和A5格式打印HTML 的问题与询问打印RTF格式的文本完全相同,所以这里有另外一个问题,详情有点更加布局。
我正在开发一个应该打印订单的 C#(WinForms)程序。该程序是为 .NET 2.0 框架编写的。该程序必须能够以 A4和A5纸张格式,进行打印,无需任何用户干扰(无对话框)。打印的订单应该与webbrowser中的完全一样。如果您想看看它应该是什么样子,可以查看 this sample 。如你所见,非常基本的东西。
这是我到目前为止所尝试的内容:
如果有人(免费)更好地打印格式化HTML,就像在浏览器中查看而没有用户干扰或外部依赖,请分享。我真的需要这个工作。
请不要关闭这个问题,相信我,当我说我积极寻找描述我的问题的解决方案或文章时。有些是相关的,但没有解决我遇到的问题。我也使用了这个网站上的高级搜索,没有运气。
感谢您抽出宝贵时间阅读本文。
注意:当我说我从未找到重复内容时,我的意思是我从未找到过直接描述我的问题的文章。
答案 0 :(得分:1)
你将不得不咬紧牙关并使用PDF库,你无法用这么多不同的用户,浏览器和打印机完全控制HTML的最终打印结果。我打印到A4用于内部业务应用程序,我们的用户群非常有限(可能是5个)并且所有打印到特定打印机,即使这样,它最多也是片状的。我不相信有一种方法可以在没有用户干扰的情况下区分A4和A5,即他们必须从打印选项中选择纸张尺寸。
建议您查看PDF Sharp,Sharp PDF和iTextSharp,它们都是OpenSource。
这一切都可以从服务器完成,即不需要在用户机器上安装任何东西。应该可以使用此选择纸张尺寸(我不是100%确定),但最终用户最终会将它打印到最终用户身上。
答案 1 :(得分:0)
我使用描述here的PrintHelper方法成功完成了这项工作。我使用它来使多个位置的用户能够从CMS系统打印条形码标签。标签对布局,字体大小和定位有严格的要求,所有这些都是使用HTML和CSS管理的。
PrinterHelper类通过传递一个填充了打印数据的webcontrol来工作(我使用了一个转发器来允许多个标签)&辅助类在内存中构建页面并打开打印对话框。你这样注册你的CSS:
pg.ClientScript.RegisterStartupScript(pg.GetType(),"LabelCSS","<link href=\"Styles/labelPrint.css\" rel=\"stylesheet\" type=\"text/css\" />");
但有一点需要注意,它只适用于Firefox,并且必须更改某些设置,例如边距设置为零,但由于CMS需要使用该浏览器,因此不存在问题。