Frage

Für die Bedürfnisse eines Projekts, ich möchte den LPT1 drucken über an bestimmten Orten, dies wird ein Dokument in einem Punktmatrixdrucker gedruckt werden, wobei i Werte in den Orten gedruckt werden soll, sollten sie gehen. Ich hasse es geht wirklich zurück, und ich habe keine Ahnung, wo ich anfangen soll. Internet hat keine spezifische Informationen über das Drucken in LPT-Port mit C # und vor allem, wie die Werte an bestimmten Orten senden während des Druckens. Gibt es ein gutes Beispiel? Tutorial für das? wäre ein Leben Retter sein.

War es hilfreich?

Lösung

Ich könnte eine Sache vorschlagen Ihnen das Leben leichter zu machen, einen allgemeinen Textdruckertreiber installieren (dies kommt als Standard) und Satz, dass an den LPT1-Port. Dann können Sie einfach öffnen ‚LPT1‘ und senden Escape-Code Sequenzen Schriftart angeben Typ (fett / kursiv), betonte, Zeichenabstand usw. ich weiß nicht, ob die Ressourcen erforderlich wäre. Aber ich könnte mir vorstellen, es wäre so etwas wie dies:

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();

Ressourcen:

  • Drucken in Zebra Drucker VB.NET verwenden (dies zu C # leicht übersetzt werden kann oder in eine DLL kompilieren und es in Ihrem C # Projekt Referenz)
  • Ein Artikel über MSDN , wie man LPT1 Schnittstelle
  • Hier ist eine umfangreiche Liste von Informationen in Bezug auf
  • Hier ist ein weiterer Artikel über MSDN dass zeigt, wie roh Druck zu tun.

Edited @ 2017.07.12. Aktualisiert den Parallel Port Link, um die Wayback Archiv-Maschine verwenden

Andere Tipps

der Drucker nicht in Frage hat eine Windows-Treiber drucken? Wenn ja, es spielt keine Rolle, dass es über LPT1 druckt oder nicht, ist es nur die Standard-Druck Sachen verwendet wird.

ähnliche Frage: Dot Matrix Druck in C #

Wenn Ihr Druckertreiber für Windows hat, dann können Sie Standard-Drucktechniken verwenden. Siehe Petzolds Buch Programmierung Microsoft Windows mit C # für ein gutes Intro.

Hey ich nur einen Punkt-Matrix-Drucker im Jahr 2019 bekam, und Sie können immer noch die Bänder für £ 5 kaufen.

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);
                }
            }
        }
    }
}

Keine Treiber brauchen Sie nur eine parallele Schnittstelle, können Sie eine PCI-E-Karte erhalten, wenn Sie noch kein Konto haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top