3 Replies Latest reply on Nov 29, 2017 2:06 AM by Stephen Troup

    How to switch the orientation of the Card when printing?

    Joshua Preston

      I am using the Zebra Technologies - Card ID Printing – Zebra Card SDK for ZXP Series 3 Printers – C#  sample code. I am having trouble setting the Orientation of the card being printed to Portrait. I set the orientation to be portrait in the Printer Preferences for the printer and clicked Print Test Page and a test card came out correctly in portrait orientation. However, when I print a card from the sample application code from the link above it only prints the card in Landscape mode. I even dived into the code, there is nothing that even uses or sets the orientation of the card anywhere. The only thing I see is in the ZBRUtil.cs it has a enum called Orientation that is never even set or used throughout the entire solution.

       

      Capture.PNG

       

      Any advice?

        • Re: How to switch the orientation of the Card when printing?
          Stephen Troup

          hmmm, I've looked and not found anyway other way than to call the other function ZBRGDIInitGraphicsFromPrintDlg that allows you to change the printer settings when initialising, the documentation describing the sdk also makes no mention of changing the page orientation. If you're having to switch between landscape and portrait from front to back of the a card it'll make life difficult.

           

          tbh, I've stopped using that version of the sdk and switched to the driverless version as that does allow you change orientation in code when initialising the graphics object but it only supports the zxp 1 and 3  The driverless version does have it's issues though but can be more versatile as it exposes more functionality plus you can use the .net graphics objects if you use reflection to expose the graphics handler.

           

          If you've only just started then I'd suggest switching over to the driverless if possible. It's a little more work but ultimately can be far more powerful.

            • Re: How to switch the orientation of the Card when printing?
              Joshua Preston

              I'm only using the Zebra ZXP Series 3 anyway so that might be a better option for me. Anyway I could get a link from you where I can find the driverless SDK? Also did you notice the 32bit ZBRPrinter / ZBRGraphics dlls dont seem to work as well? Seems to only work when i use the 64 bit dlls and when i debug in 64 bit

                • Re: How to switch the orientation of the Card when printing?
                  Stephen Troup

                  The sdk link page is Card Printer SDK for ZXP Series 1 & Series 3 Printers | Zebra

                   

                  The top link is the driverless (if you're using usb you still need to install the driver it just isn't used), the lower is the version you're currently using, it will take some getting used to but ultimately it's more powerful as exposes certain features that aren't available in the original such as being able to choose which panel you're printing in and not having to rely on the driver picking out black for instance you will need to print the overlay though. The sdk doesn't work with the ymckoo ribbon as yet, we're stuck with using the driver for that.

                   

                  One word of warning, as I've detailed elsewhere on this forum, the zxp3 sdk only works in 64bit or 32bit not both due to it overwriting certain required files when you register the main sdk file. At the moment I don't have a printer so I can't test the possible solutions to that issue. Best to register the 32bit version only if you're planning on using the code across 32bit and 64bit machines.

                   

                  If you're using anycpu or 64bit build options to compile it will require 64bit dll's on a 64bit machine (unless you select the prefer 32bit option in visual studio), Similarly 32bit dll's only if you're compiling 32bit.

                   

                  I usually compile anycpu and use loadlibrary calls to avoid the issue but with the driverless if you compile anycpu then load the library according to the machine - 64bit windows register the 64bit library and 32bit Windows load the 32bit one.

                   

                  I've switched completely to the new version as I can use code that's closer to the zmotif ZXP 7, 8 and 9 printers that I normally work with as they share the graphics library with the ZXP 1 and 3.