This is my first try to create a c# script to print a label from a Zebra s600 printen. I have a really hard time finding a good guide on the internet about how this would work. The Zebra s600 is also a very old model. Right now I am using the SDK from Zebra:
https://www.zebra.com/gb/en/support-downloads/printer-software/link-os-multiplatform-sdk.html#text_f34a
But I found out that the s600 is not included in the support list. My script does activated a little greenlight on the printer the moment I run the script. But nothing else happens. I also have no idea how to search further for my issue. Every search is a dead end.
I did followed this tutorial because I could't find any example on the web:
https://www.youtube.com/watch?v=RvWG9_rE9rg
Seems like it still supports ZPL. Have you tried sending ~WC? Try opening a command prompt and doing echo ~WC > LPT1 or echo ~WC > COM1.
If that prints a config label, then you can either use the ZDesigner drivers to print to it as a normal windows printer. If you do not find a driver for the exact model of printer, just select one with the same DPI and PDL.
Or you can write ZPL directly to the printer. To figure out what ZPL to send, you can use ZebraDesigner. The free versions are sufficient. Avoid the XML functionality unless you find the printer to support it - it was introduced after that series, I think.
Related
Some background: I'm using an Epson TM-T88V receipt printer connected via USB with Epson OPOS for .NET version 1.12.20 installed. It is detected and can print test sheets just fine from the devices manager.
My problems begin with Microsoft Point of Service. It seems to not want to connect to the printer or even acknowledge its existence. The configuration xml file has been auto-populated (correctly I think?) and looks like this:
<?xml version="1.0"?>
<PointOfServiceConfig Version="1.0">
<ServiceObject Type="PosPrinter" Name="TM-T88V">
<Device HardwarePath="TM-T88V" Enabled="yes">
<LogicalName Name="EpsonReceiptPrinter" />
...
</Device>
</ServiceObject>
</PointOfServiceConfig>
However when I try to access it via posdm.exe "listdevices", it doesn't pick up on the existing physical printer and only lists simulators. Posdm.exe is clearly using this file, as it gets written to/read from when I use the "adddevice" command.
I'm fairly new to POS/OPOS programming, but I'm also assuming this is why the printer goes undetected when I try to access it via C# with the PosExplorer.
Is there anything I'm missing that would make the POS refuse to connect to my device?
After a lot of headaches and trial-and-error, I've found a way to make this work.
First, I happened to stumble across this forum post, which indicated that the current Epson OPOS driver I'm using might not support Microsoft PoS 1.14. So I uninstalled it and downloaded Pos 1.12 instead.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/7fbc7186-560d-400b-9bfb-c638c5126e46/need-help-with-tmt20ii?forum=posfordotnet
And second, it seems that having any other windows drivers installed will enable Windows to take hold of the device and prevent any other applications from using it. So, I uninstalled the default Epson driver utility. This nugget of wisdom came from here:
http://discuss.joelonsoftware.com/default.asp?dotnet.12.699035.8
The combination of these two changes worked for me. However it seems Microsoft PoS is pretty finicky and a lot of the drivers out there leave a lot to be desired, so this might not be the solution for everyone.
has anyone had any dealings with the above mentioned printer or one like it? I have been handed the task of introducing this printer into our c# project and am not sure where to start. I have created a sample .lbl file using Averys recommended software to get all of the dimensions correct. (Nicelabel SE)
the printer is connected to the PC via Network.
here is a Sample Image of the project that I am trying to create, I have spoken to one of the engineers at Monarch and he is helping me with creating a base file to send to the printer, and having some of the data as a variable.
ideally it would be good if I could launch a dos program which would handle this for me, but I seem to really be pulling at straws here.. I have seen the Zebra SDK, but im not sure if this printer is compatible.
Thanks.
I have spoken to the Guys from Avery and they built a template for me to use, and with a variable section in the code I was able to put in my own settings to get the required output.
To send the file to the printer I was able to use the LPR Service in windows using a batch file.
First I'd like to say that long time reader of this site! Has saved me a lot from some problems that I've run in to while learning how to develop applications (specifically in c#).
Now on to the problem I am facing. I am currently developing an application that will set the speed and the power supply unit values on the EPSON TM-T88V to the values of 13 and 3 (speed and PSU). I have been using the provided commands located here on EPSON's Site. I am able to communicate with the printer by sending simple commands such as cut paper and line feed using hex in c# (using RawPrinterHelper), So I know I am able to connect to it. When I attempt to enter the user setup by using the values provided in their website, the printer seems to just "lock up". I have to rest the printer after about 2 minutes for me to be able to use it again. Thankfully, it doesn't seem like its writing anything at all to the printer, which is probably why it hasn't failed yet.
Does anyone have any experience changing settings to POS printer (specifically EPSON) who could help me with this? Usually there's a tool that will allow you to just send a .txt file with HEX values (like TPGs), but I cannot seem to find anything like that for EPSON POS printers. Any help would be greatly appreciated! Thank You
Try to reset a printer (ESC #) before start a user settings commands. It helped for me in the same case.
I am having big problems trying to print a PDF file in Windows using Ghostscript. The 'in Windows' argument comes from the fact that I am trying to use MS Windows default driver for this '-sDEVICE=mswinpr2'. I need all windows printers/drivers support. Also I can not use the PDF to images then to print job kind of solution. I cant use the gswin64c.exe file also, and I need that the job is done without any popups (no form of any kind). All I can do is just to send some parameters to gsdll32.dll and it to create a print job.
I am using C# wrapper
https://github.com/mephraim/ghostscriptsharp/tree/master
I am sending the following parameters: "-dBATCH -dNOPAUSE -dNOPROMPT -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -dFIXEDMEDIA -dPDFFitPage -sDEVICE=mswinpr2 -dQUIET -sOutputFile=\"%printer%Epson Stylus Pro 4900\" D:\1.pdf"
And every time the printer selection dialog keeps popping up. I understand that the order the parameters are in matters .... because I changed it and it had different results.
Actual Question:
What parameters do I have to send to GhostScript dll so that I can print a PDF file using the default MS Windows printing driver.
Have you tried this using the command line version of GS instead of the DLL or C# thingy ? I'd suggest you concentrate on getting that to work first.
What is the name of the printer (as it appears in Windows) ?
What version of Ghostscript are you using ?
Try using the command line without '-dBATCH', '-dNOPAUSE', '-dNOPROMPT', '-dQUIET'. that way if Ghostscript tries to tell you something you won't just ignore it or miss it.
If the command line works then; I see you've escaped the " characters, but not the '%', you might want to escape those, or double them up. Depending how this wrapper of yours works they might be getting read as format specifiers.
The parameters used in the command line have been verified first in the command line version gswin64c.exe (64 bit operation system) and they work fine.
I am using GS version 9.10 (latest version).
I've tried different combinations of parameters, with or without some of them ... same result ... -100 exit code (general fault with no specification of the error that caused it).
It doesn't seem to be a problem with that % character... I'll try some more things.
Thanks Ken for the help
As far as the printer dialog popup is concerned, if you replace "mswinpr2" with the a compatible device name such as ljet4, the prompts would go away. My guess is that your computer must be having more than one printer installed and hence windows prompts for you to choose one from the list.
Gone through the already existing posts on this topic, but my requirement is some what bit different.
Print jobs over the Network installed printers, upon a action in client side browser. Web server has got all printers in it, based on the client data, we need to print with client given configuration straight away, sending the job to printer(may be a different locations - but this is not a problem since the printers are in same network). I have seen printing architecture, Win32_print Class, SNMP, System.drawing.Printing, System.Printing.... but couldn't find the way to achieve this.. (Asp.net,C#)
-Files are been already existed in a server folder, just I need to pick up and send to a printer with client Selected Configuration...
update:I have to use JDF approach because all the files are PDF files. I am able to create JDF files with the selected configuration but sending this JDF to printer(JDF enabled) making me tough... There is JMF which post the JDF to printer, but not sure how to implement it.. still finding the ways, will be great if some one helps in this.
Something I can answer! 8-) I'm actually working on a project that uses this, right now.
Do not use Acrobat Reader as any sort of server application. It has a User Interface that will pop up on a screen that doesn't exist, at an unexpected time and freeze your app, waiting for a click that will never happen.
Use Ghostscript. Ghostscript is free, Open Source and will work perfectly for what you want. Out-of-the-box it consists of a DLL and a command line inhterface, however there is an API and a ton of different interfaces including .Net, and versions for both Windows and Linux.
On a more "overview" type of note, the reason you can drag a PDF into a printer on your workstation is because Acrobat Reader contains the code and hooks to allow this. Windows doesn't actually contain native functionality to print PDFs.