C# 在.net中的点阵式打印机上打印

C# 在.net中的点阵式打印机上打印,c#,.net,printing,C#,.net,Printing,任何人都可以告诉我在C windows应用程序中如何在点阵打印机上打印文档的代码。这与在喷墨或激光打印机上打印有什么不同 这与在喷墨或激光打印机上打印有什么不同 您可以以图形方式打印到点阵,这是Windows内置的,尽管速度较慢 但是,如果您只想使用简单的格式打印纯文本,则需要向点阵打印机发送转义命令,这比图形打印速度快。不同的打印机有不同的转义命令 以下是爱普生的典型逃生命令: 这可能有助于: 我在VB6中所做的是打印到通用/纯文本打印机,将PRN或LPT1作为文件句柄打开,然后在文件句柄上打

任何人都可以告诉我在C windows应用程序中如何在点阵打印机上打印文档的代码。

这与在喷墨或激光打印机上打印有什么不同


这与在喷墨或激光打印机上打印有什么不同


您可以以图形方式打印到点阵,这是Windows内置的,尽管速度较慢

但是,如果您只想使用简单的格式打印纯文本,则需要向点阵打印机发送转义命令,这比图形打印速度快。不同的打印机有不同的转义命令

以下是爱普生的典型逃生命令:

这可能有助于:

我在VB6中所做的是打印到通用/纯文本打印机,将PRN或LPT1作为文件句柄打开,然后在文件句柄上打印转义命令,所有转义命令将重定向到连接到LPT1或PRN的任何打印机。您可以用C做同样的事情,只需将PRN或LPT1作为文件打开,然后打印到其中

要添加通用/纯文本打印机,请选择“控制面板>打印机>添加打印机”。在“制造商”上选择“通用”,然后在“打印机”上选择“通用/仅文本”


只有Zebra打印机有自己的转义命令来打印条形码,这比让Windows以图形方式打印条形码要快。

您可以以图形方式打印到Windows内置的点阵打印机,尽管速度较慢

但是,如果您只想使用简单的格式打印纯文本,则需要向点阵打印机发送转义命令,这比图形打印速度快。不同的打印机有不同的转义命令

以下是爱普生的典型逃生命令:

这可能有助于:

我在VB6中所做的是打印到通用/纯文本打印机,将PRN或LPT1作为文件句柄打开,然后在文件句柄上打印转义命令,所有转义命令将重定向到连接到LPT1或PRN的任何打印机。您可以用C做同样的事情,只需将PRN或LPT1作为文件打开,然后打印到其中

要添加通用/纯文本打印机,请选择“控制面板>打印机>添加打印机”。在“制造商”上选择“通用”,然后在“打印机”上选择“通用/仅文本”


只有Zebra打印机有自己的转义命令用于打印条形码,这比让Windows以图形方式打印条形码要快。

在喷墨打印机或激光打印机上打印时,通常不使用打印机的内置字体。您使用Windows字体。发生的情况是,打印机驱动程序要么生成包含文本的像素图像并将其发送到打印机,要么将用于绘制直线、样条曲线和其他形状的命令发送到打印机,字体表示为直线和样条曲线轮廓

当你用老式的点阵式打印机打印时,你可以用那种方式,但速度很慢。每一行文本都必须由像素“构建”,并且通常文本行与打印头的行程不匹配,尤其是对于大大大于或小于12点的字体

使用这些打印机的旧方法,即它们的预期方式,是将文本的实际ASCII码发送到打印机。发送数字65十进制,您将获得大写字母大写字母“a”。数字49小数将打印数字“1”,而数字32将是空白,33是感叹号“!”,依此类推。一个字节=一个字符。点阵打印机有自己的内置字体,可以在其字体ROM中查找ASCII码,并从中确定打印线在打印这些字母时准确敲击页面的确切时间

通过使用转义码,您可以指定这样的效果,例如伪黑体字基本上在字母上打两次,第二个副本只向右移动一个点宽,在通常打两次的情况下,在一行中每列电线上打两次双宽,从而使字母的宽度加倍,无论字母形状是否要求在该点使用下划线,在整个打印线底部加下划线,以此类推

打印机自己的ROM处理了所有关于打印线等的机械细节。您的程序所需提供的只是文本的实际ASCII代码,包括控制代码,如数字13[Carrie Return aka CR],用于将打印头返回到左边距[或者,对于双向打印机,准备以与前一行相反的顺序打印下一行],通常后面跟着数字10[line Feed aka LF]将纸张卷起一行,准备打印下一行

如果您想要打印打印机没有的奇特字体,或者打印图形,您必须使用转义码将打印机设置为“图形模式”,在这种模式下,您基本上发送字节,这些字节的位将指定为 在直接程序控制下启动打印头的各个导线,而不是在打印机的字体ROM中查找字符形状。当您使用打印机特定的驱动程序从Windows正常打印时,通常会发生这种情况


对于雏菊轮或其他固定字符打印机,例如IBM Selectric类型的滚珠机构,ASCII码会将滚轮或滚珠旋转到适当的位置,然后敲击色带,从而将字母打印在页面上,或者向上发送右锤,敲击色带,从而敲击页面电传打字机或旧打字机机构。除了通过打印重复的周期和将打印头和纸张分别微推进周期的宽度/高度而不是文字的字符/行之外,无法使用这些进行像素图形,这通常会很快磨损雏菊轮或球的周期字符,正是由于这个原因,他们中的许多人都有金属加固的时期。

当你在喷墨打印机或激光打印机上打印时,你通常不使用打印机的内置字体。您使用Windows字体。发生的情况是,打印机驱动程序要么生成包含文本的像素图像并将其发送到打印机,要么将用于绘制直线、样条曲线和其他形状的命令发送到打印机,字体表示为直线和样条曲线轮廓

当你用老式的点阵式打印机打印时,你可以用那种方式,但速度很慢。每一行文本都必须由像素“构建”,并且通常文本行与打印头的行程不匹配,尤其是对于大大大于或小于12点的字体

使用这些打印机的旧方法,即它们的预期方式,是将文本的实际ASCII码发送到打印机。发送数字65十进制,您将获得大写字母大写字母“a”。数字49小数将打印数字“1”,而数字32将是空白,33是感叹号“!”,依此类推。一个字节=一个字符。点阵打印机有自己的内置字体,可以在其字体ROM中查找ASCII码,并从中确定打印线在打印这些字母时准确敲击页面的确切时间

通过使用转义码,您可以指定这样的效果,例如伪黑体字基本上在字母上打两次,第二个副本只向右移动一个点宽,在通常打两次的情况下,在一行中每列电线上打两次双宽,从而使字母的宽度加倍,无论字母形状是否要求在该点使用下划线,在整个打印线底部加下划线,以此类推

打印机自己的ROM处理了所有关于打印线等的机械细节。您的程序所需提供的只是文本的实际ASCII代码,包括控制代码,如数字13[Carrie Return aka CR],用于将打印头返回到左边距[或者,对于双向打印机,准备以与前一行相反的顺序打印下一行],通常后面跟着数字10[line Feed aka LF]将纸张卷起一行,准备打印下一行

如果您想打印打印机没有的奇特字体,或打印图形,您必须使用转义码将打印机设置为“图形模式”,在这种模式下,您基本上发送字节,其位将指定在直接程序控制下触发打印头的各个导线,而不是在打印机的字体ROM中查找字符形状。当您使用打印机特定的驱动程序从Windows正常打印时,通常会发生这种情况


对于雏菊轮或其他固定字符打印机,例如IBM Selectric类型的滚珠机构,ASCII码会将滚轮或滚珠旋转到适当的位置,然后敲击色带,从而将字母打印在页面上,或者向上发送右锤,敲击色带,从而敲击页面电传打字机或旧打字机机构。除了通过打印重复的周期和将打印头和纸张分别微推进周期的宽度/高度而不是文字的字符/行之外,无法使用这些进行像素图形,这通常会很快磨损雏菊轮或球的周期字符,因为这个原因,他们中的很多人都有金属加固的时期。

虽然不是用C,但我写过使用爱普生打印机的原生字体的访问报告。几年前,使用Windows XP,但当选择打印机作为默认字体时,可以通过字体选择器选择打印机的本机字体

这是相当整洁的-我可以使用任何字体我喜欢的标题,这是缓慢的打印。然后我可以为细节行选择本机打印机字体,这很快。这样做的话,我必须小心所有本机字体细节stauff有完全相同的垂直对齐,否则
它又变慢了。

虽然不是用C语言编写的,但我编写的Access报告使用了爱普生打印机的本机字体。几年前,使用Windows XP,但当选择打印机作为默认字体时,可以通过字体选择器选择打印机的本机字体


这是相当整洁的-我可以使用任何字体我喜欢的标题,这是缓慢的打印。然后我可以为细节行选择本机打印机字体,这很快。这样做时,我必须小心,所有本机字体细节stauff都具有完全相同的垂直对齐方式,否则它会再次变慢。

你当然是对的。或者我们可以将这个问题解释为,您是否有代码直接从C?驱动特定点阵式打印机的功能?。维克拉姆需要进一步说明……你当然是对的。或者我们可以将这个问题解释为,您是否有代码直接从C?驱动特定点阵式打印机的功能?。Vikram需要进一步说明…它的点矩阵类似于热敏打印机设备吗?它的点矩阵类似于热敏打印机设备吗?