Programmatically Set Printer Settings For Same Label To Different Printers
We distribute the same software to multiple clients that have multiple different label printers with Seagull drivers. The label stock in each printer varies depending on what needs to be printed at what time of day/volume. As part of the installation setup, after setting the system so all users share/use the same printer setting I would normally use DocumentProperties and SetPrinterProperties API functions to do the same thing that Bartender is doing via the printer document properties tab to set offsets/speeds, etc.
I understand about using label stock to select a setting for a given label. It appears that the printer settings have to be present before the label is opened, or the use of that setting is wiped out and the default settings are used which are not the desired ones.
Where are the printer settings documented. I am referring to the pop-up (attached) invoked from print document properties. Business-wise, it is unacceptable to set dozens of label files manually to work for a client with 6-10 different printers.
Which settings are you referring to specifically? Is it primarily the paper/page size that you want to keep, or the other printing preferences such as print mode, sensor mode, print speed/darkness etc?0
print mode, sensor mode, horizontal and vertical offsets (appear to be presets), and start position all seem to be required to get labels with pre-printed stock to look right. Preferably I want to send the printer setup information to each printer at the time the label is queued for printing. A code snippet of how we print is attached.
My prior reply to this post seems to have disappeared, but Levi in support explored this interactively me and there is a basically manual way of doing this:
Use printer setting export/import (produces sds extension file) and create multiple logical printers all pointing to the same physical printer. Each logical printer gets a different sds imported to it. It would really help to be able to create the logical printers programmatically (this is doable) and assign them sds files programmatically (need help to see how to do this).
This does not deal with the fact that the same printer model may require different settings, especially speed and heat, depending on the ambient conditions where it is. Think a printer in vegetable packing area that's cool and humid versus same printer in same facility, printing same labels on truck loading dock (much warmer).
Regards and thanks, Ira0
The attached shows what it looks like when you create multiple logical printers pointing to the same physical printer.0
It should be noted that our solution for this problem is called BarTender as it is able to embed all of these printing preferences settings as part of the document file. Therefore when you load and print the document it prints in exactly the way you designed it to print. It should be noted that BarTender supports a .NET and a COM interface for automated control of a BarTender process for printings previously designed labels programmatically.0
Currently, at least in the support session with Levi where he tested using the client printers while I was on-site, the labels do not retain some settings even when the "use current printer settings" checkboxes are cleared everywhere you can find them. We are using Bartender Enterprise Automation in our application and the implications for our clients with large numbers of printers or even small numbers of printers with different labels in the printers is not encouraging.
In our testing, there has to be a different label for each printer to force the named settings for that printer that are embedded in the label to be used. That means if we have 6 printers of different types (or more commonly in different environmental temperatures, loading dock, cooler, or office) with 4 different labels that can be any of those 6 printers, we need to manually create on-site 24 different labels. Not a good solution.
For whatever reason, I am not being notified of replies to this topic.0
I'm assuming that Seagull printer drivers are in use here. When switching between printer drivers in a document, where the two printers are of the same make, but different, yet comparable models, then the print settings will transfer across directly. If however, the two printers are of different brands (for example a Zebra and Datamax ), then the settings cannot get transferred across directly as the settings available are different, and thus the document will default to the Windows default setting for that printer driver. I guess this is the behaviour you are experiencing.
In the future we hope to have a better solution for this, such as multiple print setting configurations per single document to handle a variety of printers, but this is the functionality as it is now.0
I will try it again. When tried on-site, we did not have identical printers in identical environments to have their settings set. Two identical printers require different temperature settings of the print head. The non-air conditioned printer is set warmer to deal with humidity and the office located printer is set cooler, otherwise it blurs the UPC barcode.
Continuing this same thread, Seagull.Bartender.Print.PageSetup exposes a PaperName property among others. I am trying to find what/where the custom stock is supposed to be seen and/or set. That has been recommended elsewhere as a mechanism of getting specific printer settings for a given printer which has the custom stock defined. A screenshot shows what I am looking for and the attached text file shows what I am getting from Bartender at run-time with the label open for printing.