You are hereDYMO Label Printing Issues
DYMO Label Printing Issues
I was trying to print shipping labels from a VB6 application on a DYMO Labelwriter 400 Turbo and couldn't get things to come out right. What I figured out was that you need to do a few things to get the shipping labels to print correctly. The couple of the most important things are...
1. You need to set landscape mode.
2. You need a locally attached printer--printing to a (Microsoft or SAMBA) network shared printer is very problematic.
3. If you want a nice font, print using a VB LABEL control, not any other controls like a TEXT control.
SET LANDSCAPE MODE
In vb6, to print a form in landscape mode, you can do this:
Printer.Orientation = vbPRORLandscape
Me.PrintForm
PRINT LOCALLY
The printer has its own SDK you can use for programming, but I couldn't get it to work over a network to a shared printer. Supposedly, if it is set for full rights for the EVERYONE group, the printer settings can be set, but no matter what I did, the printer driver always reverted to the default label format (30252 Address) instead of what I needed (30256 Shipping). This resulted in the top part of the label printing on the bottom part of the label (like the top margin is too high).
I solved this temporarily by only using locally attached printers and setting the default form to the 30256 I needed (I had to exit the application and restart it before this change was seen and the label printed correctly). However, at some point I hope to revisit this. The SDK had a good example of how to set these values without using a COM component (only using the Windows API), but even though it seemed to work, it never printed correctly until I switched to a local printer.
PRINTING A NICE FONT
Because of the way VB prints forms, it converts text in a control to a pixelated font before printing. This was a problem with VB, really, not the printer, but it was still pretty junky looking.
I worked around this by setting up hidden LABEL fields that were the same size as the TEXT fields the users entered the data into, but pushed behind the TEXT fields. When the users clicked the PRINT button, I just hide the TEXT fields, set the LABEL fields to have the value of the TEXT fields, then print the form. The only problem with this is that VB will convert and appersand to an underscore when it prints, so you have to insert the don't make this an underscore character.



