Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Printing in (Parallel Port) Dot Matrix over C#

For the needs of a project, i want to print over the LPT1 in specific locations, this will print a document in a dot matrix printer where i should print values in the places they should go. I really hate going back, and i don't have any idea where to start. Internet has no specific information about printing in LPT port with C# and especially how to send the values in specific locations while printing. Is there any good example? tutorial for this? would be a life savior.

like image 857
George Taskos Avatar asked Jan 22 '23 16:01

George Taskos


1 Answers

I could suggest one thing to make your life easier, install a generic text printer driver (this comes as standard) and set that to the LPT1 port. Then you can simply open 'LPT1' and send escape code sequences to specify font type (bold/italic), emphasized, font pitch etc. I don't know if the resources would be required. But I would imagine it would be something like this:

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

Resources:

  • Printing to a zebra printer using VB.NET (This can be easily translated to C# or compile it to a DLL and reference it in your C# project)
  • An article on MSDN on how to interface to LPT1
  • Here is an extensive list of info pertaining to Parallel Port. (look further down near the section titled 'Programming Tools for Port I/O and Interrupts'), discussing the usage of this DLL called inpout32.
  • Here is another article on MSDN that shows how to do raw printing.

Edited @ 2017-07-12: Updated the Parallel Port link to use the Wayback Archive Machine.

like image 118
t0mm13b Avatar answered Feb 11 '23 20:02

t0mm13b