4

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

4

4 回答 4

5

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

System.IO.StreamWriter sr = new System.IO.StreamWriter(@"\\.\LPT1");
sr.Write(0x1b); sr.Write('k'); sr.Write('1'); sr.Write("你好"); // 以无衬线字体打印
sr.WriteLine();
sr.Flush();
sr.关闭();

资源:

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

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

于 2010-01-26T01:34:30.670 回答
3

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

类似的问题:C# 中的点阵打印?

于 2010-01-26T01:12:42.333 回答
1

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

于 2010-01-26T01:15:00.823 回答
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 卡。

于 2019-05-21T17:14:11.617 回答