通过C#打印(并行端口)点阵

时间:2010-01-26 01:07:10

标签: c#-3.0 printing parallel-port dot-matrix

对于项目的需要,我想在特定位置打印LPT1,这将在点阵打印机中打印文档,我应该在他们应该去的地方打印值。我真的很讨厌回去,我不知道从哪里开始。 Internet没有关于使用C#在LPT端口中打印的具体信息,尤其是在打印时如何在特定位置发送值。有什么好的例子吗?这个教程?将是一个救生员。

4 个答案:

答案 0 :(得分:5)

我可以建议一件事让您的生活更轻松,安装通用文本打印机驱动程序(这是标准配置)并将其设置为LPT1端口。然后你可以简单地打开'LPT1'并发送escape code序列来指定字体类型(粗体/斜体),强调,字体间距等。我不知道是否需要资源。但我想它会是这样的:

System.IO.StreamWriter sr = new System.IO.StreamWriter(@"\\.\LPT1");
sr.Write(0x1b); sr.Write('k'); sr.Write('1'); sr.Write("Hello"); // print in Sans Serif
sr.WriteLine();
sr.Flush();
sr.Close();

资源:

  • 使用VB.NET打印到zebra printer(可以很容易地将其转换为C#或将其编译为DLL并在C#项目中引用它)
  • MSDN关于如何与LPT1接口的文章
  • 以下是与Parallel Port相关的详细信息列表。 (在“端口I / O和中断的编程工具”部分附近进一步向下看,讨论了这个名为inpout32的DLL的用法。
  • 这是另一篇关于MSDN的文章,展示了如何进行原始打印。

已编辑@ 2017-07-12:已更新并行端口链接以使用Wayback存档计算机。

答案 1 :(得分:3)

有问题的打印机是否有Windows打印驱动程序?如果是这样,它是否在LPT1上打印并不重要,它只是使用标准的打印材料。

类似的问题:Dot Matrix printing in C#?

答案 2 :(得分:1)

如果您的打印机具有Windows驱动程序,则可以使用标准打印技术。请参阅Petzold的书Programming Microsoft Windows with C#以获得一个好的介绍。

答案 3 :(得分:0)

嘿,我在2019年才有了点矩阵打印机,您仍然可以以5英镑的价格购买色带。

using System.IO;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;

public class ParallelPrinter
{
    [DllImport("kernel32.dll", SetLastError = true)]
    static extern SafeFileHandle CreateFile(string lpFileName, FileAccess dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, FileMode dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile);

    public static void Print(string text)
    {
        using (SafeFileHandle fileHandle = CreateFile("LPT1:", FileAccess.Write, 0, IntPtr.Zero, FileMode.OpenOrCreate, 0, IntPtr.Zero))
        {
            if (fileHandle.IsInvalid == true)
                throw new ApplicationException("Printer is Invalid");

            using (FileStream stream = new FileStream(fileHandle, FileAccess.Write))
            {
                using (StreamWriter writer = new StreamWriter(stream, Encoding.ASCII))
                {
                    writer.Write(text);
                }
            }
        }
    }
}

没有驱动程序,您只需要并行端口,如果没有并行驱动程序,则可以获得PCI-e卡。