What I want to do is to make program like attachment, commtools, it's very old windows software, but it can send & receive data by different ways, no need to change windows driver or install 3rd party driver, I don't know who write this program, but it's really good.
Looking at the communication tools screenshot, I notice where your confusion comes from. It looks like you can attach the same printer in multiple ways at the same time. Which is rarely the case, you can only select one interface at a time.
Next, they're basically all serially connections behind the screens. The hard part is first configuring that connection and then knowing which ASCII codes to send to perform a specific function. Generally, that's not something you can do from your program, it requires installing the drivers. And, of course, TCP/IP will require a socket instead of a COM-port.
If you want to make something generic, you're better off seeing if they support Epson 2 emulation mode, because a translation table isn't going to cut it. Like, some try to supply you with something alike a canvas, just like with a Windows printer, on which you can paint, while most other ones expect you to tell them to print this graph in this size and orientation at this location. Some require absolute pixel coordinates, others use relative locations. And the character sets are mostly unique, although most allow you to upload your own one.
I made a generic one once (in Delphi), but it was a lot of work and generally not worth it.