How to map a virtual COM port to a physical USB port?

There is a simple way to do it using standard Windows commands. Lee Harrison's link shows this command, but here's a short description. Start by making the printer shareable (from Printer Properties > Sharing tab).

Now, start a command prompt and type:

NET USE COM1: //pc_name/printer_share_name /persistent:yes

Here, pc_name is the name of the sharing PC, and printer_share_name is the share name you gave the printer when you set up the share.

From then on, anything you send to COM1 will be re-routed to the printer.

There is one proviso however - and it applies regardless of which method you use to get the data to the printer, hardware or software:

As your program only knows about COM1, I assume it will send plain text to the printer. Many USB-only printers do NOT understand plain text, and will just ignore it altogether. Printers that do this are called host-based printers, where the Windows graphics engine converts the page into dots on the paper, rather than letting the printer do the conversion. They are mostly the low cost printers, especially inkjets but also some lasers. Printers that do understand text need to support a language called PCL5. PCL6 printers usually also support PCL5, but PCL3 printers do not.

If you tell me your printer model I can check what language it supports.


We use this solution in the company.

FTDI Virtual COM USB

Virtual COM port (VCP) drivers cause the USB device to appear as an additional COM port available to the PC. Application software can access the USB device in the same way as it would access a standard COM port.

Here is the Instalation Guide.