通过C#编程使用点阵打印机进行打印

4
我正在使用微软的代码模板,在这个网站上找到了它,使用以下代码片段来打印一行并换页:
string s = "Hello world!\xC"; //\xC means form feed
PrintDialog pd = new PrintDialog();
pd.PrinterSettings = new PrinterSettings();
if (DialogResult.OK == pd.ShowDialog(this))
{
    RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s);
}

但是不幸的是,我的纸张长度总是像A4纸一样长。

我的代码有什么问题?有人有什么提示或技巧来解决这个问题吗?


你的问题是代码还是打印方面出了问题? - drudge
1
请解释一下“我的纸张长度总是像A4纸张那么长”的含义,以及为什么这会成为问题。 - Dour High Arch
哇,点阵打印机还存在吗?我以为那些在90年代就消失了... - Nathan Ernst
2
@Nathan:出奇的是,至今还没有人找到如何通过4块碳制造激光或喷墨打印的方法。这些冲击式打印机将会存在很长一段时间,因为它们便宜可靠,并且能够做一些激光打印机和喷墨打印机无法实现的事情。 - Jim Mischel
@jnpcl,我在打印方面遇到了问题。 - rasputin
1个回答

4
很难说问题可能是什么。 SendStringToPrinter 最终会调用 WritePrinter,它应该将您发送给打印机的内容不加修改地复制。 换页符应该垂直地将纸张向上移动到下一页的开头。 在这种情况下,“下一页”由打印机定义,打印机的配置将说明一页的长度。
也许您想通过使用换行符来推进一行?

2
对于本帖作者来说,换行符是\x0A而不是\x0C - Greg Hewgill
你是对的,可以使用换行符来提高纸张。这解决了我的问题,感谢“hack”换行符 :)@Greg Hewgill,也感谢您提供的换行命令。 - rasputin
@rasputin,如果这解决了问题,请选择此为被采纳的答案。 - Jim Mischel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接