Writing Fingerprint to run on the PM and PX series, part 2

I mentioned in an earlier post that the Dir command (used to rotate images, text, and barcodes) works differently in the PM and PX series when applied to images. The PX series printer can only rotate an image by 180 degrees but the PM series can rotate images at 0, 90, 180, and 270 degrees. Here’s a label that prints an image using all four Dir parameters:

The way around this is to rotate your images (I like IRfanview) ahead of time and print all of your images at Dir 1 and both printer will behave the same.

While we’re on the subject of IRfanview, you can greatly reduce the size of your images by reducing them to 2 bits per pixel. Thermal and thermal transfer printers can only print in black or white, so anything beyond 2 bpp is a waste of space. For example, here’s an image that we had to use in a Fingerprint program:

At 16 bits per pixel this image used 2,718,478 bytes of storage. After conversion to 2 bits per pixel it was only 340,262 bytes, an almost 90% reduction in size with no loss of resolution.

 

Fixing a print issue with Fingerprint programming

A large pharmaceutical company is using an ancient lab system that prints cryo labels for test tubes. They replaced Intermec 3400 printers that were almost 20 years old with new PC43T printers. The PC43T runs IPL (Intermec Print Language) and should have been a plug and play replacement. Unfortunately, some of the barcodes that printed on the 3400 no longer printed on the PC43T. The problem was caused by the different designs of the two printers. The PC43T’s labels are centered in the printer instead of all the way to the left (as you are facing the printer) on the 3400. Without getting into too much detail, their label format had to be modified to use the PC43T, but due to the age of the system this turned out to be impossible. The labels are .5 by 1.25 inches:

These are Code 128 barcodes printed with a 5 mil X (narrow bar) dimension.

We wrote a Fingerprint program that ran in the PC43T that intercepted data coming from the host, reformatted it into Direct Protocol (which has a center justify feature) and printed the label. Problem solved.