以A4和A5纸张格式打印HTML

时间:2013-01-16 15:17:34

标签: c# html printing

显然关于以A4和A5格式打印HTML 的问题与询问打印RTF格式的文本完全相同,所以这里有另外一个问题,详情有点更加布局。

我正在开发一个应该打印订单的 C#(WinForms)程序。该程序是为 .NET 2.0 框架编写的。该程序必须能够以 A4和A5纸张格式进行打印,无需任何用户干扰(无对话框)。打印的订单应该与webbrowser中的完全一样。如果您想看看它应该是什么样子,可以查看 this sample 。如你所见,非常基本的东西。

这是我到目前为止所尝试的内容:

  • 询问question on StackOverflow,因复制而被关闭。从未找到副本。
  • 使用 WebBrowser 元素进行打印。无法打印A5,因此无法解决。
  • 将HTML放入 RichTextBox 并打印出来。它工作,但它没有显示像在webbrowser中查看的HTML,这是一个要求。可以找到代码here
  • 我打算在打印之前转换为PDF,但这要么昂贵,要么根本不可能使用(对我来说,作为一个没有C#经验的程序员)。这些工具通常依赖于安装在用户计算机上的软件(如用于打印的Acrobat Reader),我正在努力避免这种情况。
  • 查看Google中每个相关链接至少13页,没有运气。我已经在这里待了大约两天半。

如果有人(免费)更好地打印格式化HTML,就像在浏览器中查看而没有用户干扰或外部依赖,请分享。我真的需要这个工作。

请不要关闭这个问题,相信我,当我说我积极寻找描述我的问题的解决方案或文章时。有些是相关的,但没有解决我遇到的问题。我也使用了这个网站上的高级搜索,没有运气。

感谢您抽出宝贵时间阅读本文。

注意:当我说我从未找到重复内容时,我的意思是我从未找到过直接描述我的问题的文章。

2 个答案:

答案 0 :(得分:1)

你将不得不咬紧牙关并使用PDF库,你无法用这么多不同的用户,浏览器和打印机完全控制HTML的最终打印结果。我打印到A4用于内部业务应用程序,我们的用户群非常有限(可能是5个)并且所有打印到特定打印机,即使这样,它最多也是片状的。我不相信有一种方法可以在没有用户干扰的情况下区分A4和A5,即他们必须从打印选项中选择纸张尺寸。

建议您查看PDF SharpSharp PDFiTextSharp,它们都是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需要使用该浏览器,因此不存在问题。