Download this application/utility to update the software within the ticket printer. Please contact your local IT department for assistance making this change. ‹ Changing IP Address on Practical Automation Printers up IP Ticket Printing Setup - Mac ›. A guide to the Practical Automation iTX ticket printer setup and instructions for the ITX with the thermal ticket upgrade with ThunderTix. This is a short introduction on the new version of SwarPlug. It describes the sound settings as well as the new Librarian pane the plugin now includes. Practical automation etx drivers for mac download. Swarplug For Mac Free Download. It consists of VST instrument plugin plus for the Swar Librarian Java application.
In version 1.8 of pretix, we introduced shippingmanagement as a new feature for the pretix Hosted and Enterprise editions. With this plug-in, you can choose not todeliver your tickets to your visitors as a downloadable file, but to send them via snail mail instead. Of course,you can just download those tickets as regular-sized PDF files, print them out and ship them, but the feature isusually most interesting if you want to send out high-quality tickets that look good e.g. in a gift wrapping undera christmas tree or pinned to a wall as a souvenier of the event.
For this purpose, you will need a thermal ticket printer as well as suitable ticket paper. Last year, I took a closerlook at this market and tested devices from two of the major ticket printer vendors: The BOCA Lemuras well as the Practical Automation uITL+2003CF model.In our test, the printing quality of both printers was very similar. The uITL+ is missing a network port in contrast to the BOCA Lemur, but the uITL+ features a nicer case (smaller and metal instead of plastic) and is way more affordable to obtain,at least here in Europe.
For this reason, we chose the uITL+ as our reference printer and for our first customer installation. You’ve alreadyseen a photo of the uITL+ in our last blogpost:
However, there is another downside to the uITL+: It only comes with a Windows driver, while the BOCA printers come withdrivers for all platforms, including packages for Debian, Ubuntu, Fedora,CentOS, Arch Linux, FreeBSD, and even an ARM build for the Raspberry Pi.
Both printers speak FGL (“Friendly Ghost Language”) over the wire, a communication protocol common to the worldof ticketing printers. With FGL, you can send ASCII text and style information in order to render your tickets directlyon the printer (but we want to send PDFs rendered on the server instead, which is why we need a driver to convert).Documentations of FGL can be obtained via the websites of bothvendors. This also means that the drivers are, intheory, cross-compatible with minimal adjustments in configuration.However, the license of the BOCA driver forbids using their driver to control printers of other vendors. Additionally, nosources of the driver are available and some builds (like the ARM build of the Raspberry Pi package) only run on very old operating systemssince they link to very old library versions.
Therefore, to use the uITL+ from a Linux operating system, we need to roll our own driver.
Printing on unix-like operating systems like Linux or macOS is usually done through the CUPSdaemon. CUPS is responsible for handling printer configuration, scheduling print jobs and actually talking to the printerover the wire. Unfortunately, though, CUPS does not speak FGL out of the box.
If we look into CUPS’ documentation on driver development, we see that webasically need to work on two tasks:
We need to write a filter program that takes rastered pixel data as an input and outputs FGL code.
We need to generate a PPD file that contains configurationinformation about the printer (i.e. name, name of the newly created filter, paper sizes, cutter settings).
Writing a CUPS filter
Let’s get started with writing our CUPS filter, which we will call
rastertofgl. Usually, most CUPS filters are writtenin C, but I decided to choose Python instead – not only because I know it better, but also because writing it in a compiledlanguage also means that we need to cross-compile it to different architectures like ARM if we want to run it on deviceslike the Raspberry Pi, which creates additional effort. Basically, we can use any language because the filter just needsto be an executable that reads a data stream on standard input and outputs a data stream on standard output.
The incoming data stream consists of pages of data in the CUPS Raster Format,version 3. Every page starts with a page header of fixed length containing meta information such as the color space, page size, orientation, etc. In order to be able to conveniently access this data later, let’s start by defining a namedtuplefor storage. For brevity, I’m not including all the 104 properties here:
Next, we make use of the struct module from Python’s standard libraryto read the magic word from the beginning and then split the binary stream into all its different components. From theheader, we then know the width and height of the page in pixels as well as the number of bits per pixels, allowing us toread all of the page into a bytearray and then continuing with parsing the next page:
This allows us to read all the data we get from CUPS!
Now, we need to interpret this data as an image and then re-output it as FGL.Unfortunately, CUPS sends us grayscale values and our printer only supports pixels that areeither fully black or white. Since we do not want to drop grayscale values compeltely,we want to apply Dither. Additionally, to make theconversion logic easier, we want to rotate the picture since we want to print the ticketsin landscape mode (for now).
This makes it cumbersome with pure standard library features, so I decided that it is feasibleto introduce Pillow as a dependency, since Pillow is alsoavailable from the package repositories of all major Linux distributions – and probably installedon your system already. Let’s go ahead and load the pixels into Pillow, then!
Pillow can automatically convert the picture to black and white for us, if we ask it to:
If we want to send the raster data to the printer, we need to follow the FGL instructionsfor graphical data, which expects us to send 8 lines of pixels at a time: One byte for eachcolumn with each bit of the byte representing one of the 8 lines. We therefore loop overthe image in blocks of 8 lines and create a row of bytes for each of these blocks. If anyof these pixels is non-white, we’ll send the row to the printer, preceeded my a “move”command:
Almost there! We now only need to send either “print” or a “print and cut” command, dependingon the options of the print job (or the printer’s defautl options):
We can now test that our filter is running correctly by obtaining a sample stream of CUPS raster dataand piping it through our filter and directly into the printer:
It works! To use this with cups, we now also need to write a PPD file.
PPD printer defintion
PPD is a nasty format that is no fun to write by hand. Luckily, CUPS comes with a tool named ppdcthat allows us to write a slightly higher-level DRV file and then later compile it to a PPD. The full reference forDRV files can be found here. For our case we start with some boilerplatedetails like the printer’s name:
Next, we define the name of the filter that we want to apply, which is the rastertofgl script we just wrote:
We also need to tell CUPS the DPI and the color model, in order to receive the correct number and type of pixels for ourfilter:
We want to give the user the option to turn the printer’s cutter on or off – or choose whether the printer shall cut afterevery single ticket or just after every print job:
CUPS also has an integrated
Cutter yes directive, but this only allows to turn the cutter on or off completely, whilewe want to have all three options here.
And then, finally, we need to specify all paper sizes that we want to support. We like tickets of the regular 8x3.25” sizebest, but our PPD file includes 55 other different paper sizes as well. Here’s just one example of how this looks:
Half a day, 100 lines of python, and 69 test tickets printed later, we’re done! We just need to place the filter and the PPD files in the correct places and our printer driver will beavailable to use. To make it easier for you, I created packages for Arch Linuxand Debian.All source code of the driver can be found on GitHub, of course.
Some issues remain, for example our filter currently fails for unclear reasons whenever I want to print a PDF from a GTK-basedPDF viewer – printing the same file with
lpr from the command line works fine.
If you are interested in printing and shipping tickets, make sure to check out pretix’ Shipping featureand automated printing tool! You can also buy your ticket printer and paper fromus for a competitive price – just drop a line at [email protected] for more information.
October 27, 2003
Printers Kiosks - Practical Automation
Practical Automation offers the ITK, cLTx, ATX38 printers for kiosks.
Choose from the printer series below. Click on the 'More Information' link for detailed descriptions of printer capabilities, special features, specifications and diagrams. You're sure to find a printer that meets you needs and your budget.
The ITK Series printers are designed to satisfy heavy duty printing applications. These may include the generation of coupons, maps, lists, graphics, etc. The printers operate under the Windows™ operating system utilizing a WYSIWYG driver supplied by Practical Automation. Print speed is fast — 3.1 inches per second.
Designed For Easy Integration
The cLTx series is a modular ticket printing system designed for easy integration into an ATM (automatic ticket machine) kiosk. The cLTx consists of two modules: a printer module and a power supply module. The printer module combines a thermal print mechanism, auto-cutter, and control electronics in a compact, lightweight package suitable for fixed base or slide mounting. Operating power is provided by a universal input power supply module. A four foot power interconnect cable allows the power module to be placed in a remote location for overall simplified packaging.
ATX 38 Wide Format Kiosk Printer
Practical Automation Printer
A Direct Thermal Raster Graphics Printer Designed For Easy Kiosk Integration
The Practical Automation Model ATX 38 is the perfect choice for wide format, 6 1/2 to 8 1/2 inch printing in unattended kiosk systems. Applications include information dispensing, statements, government forms, educational registration, car rental forms, etc.
A direct thermal, Windows™ compatible printer with options and features to support operation in kiosks or similar environments. Choose model ATX 23 for 3.34 inch (85mm) paper width or ATX 24 for 4.48 inch (114mm) paper width. Print speed under Windows is very quick - 3.1 inches per second.
Download Practical Automation Printers Driver Download
Main Site Pages
Kiosk Products Standard Kiosks Stealth kiosk Thinman kiosk Wedge kiosk Stubby kiosk Custom kiosks
OEM Contract Manufacturing About KIS Service & Support Questions & FAQ News & PR Contact KIS
Applications and Vending
Photo Kiosks Internet Pay For Use Music Download HR Kiosk Ticketing Kiosk Information Kiosk
QuickPIX Kiosks SnapTRAX Digital Kiosk BurnASong Music Download Kiosk Shibby Internet Kiosk
Kiosk Application Design
Linebuster Kiosk Gaming Kiosk Retail Kiosk Bill Payment Kiosk Directory Wayfinder Kiosk Security Kiosk
Job Employee Kiosk Prepaid Kiosk Marketing Kiosk Check In Kiosk Order Entry Kiosk Redemption Kiosk
Kiosk Enclosure Kiosk Design
GSA Kiosks Outdoor Kiosks Internet Kiosks QuickPIX Kiosks Interactive Kiosk Multimedia Kiosk
Touch Screen Kiosk Self-Service Gift Registry Partners Employee Self-Service Kiosks
Broadband Services Kiosk Whitepapers & Case Studies
Brochures and Pictures
Arch Kiosk image galleryStealth Kiosk image galleryThinman Kiosk image galleryCustom Kiosk image gallery
Wedge Kiosk image galleryStubby Kiosk image galleryDigital Kiosk image gallery
Olea Kiosks designs, manufactures, delivers and supports touchpoint self-service kiosks.
Olea is the largest producer of kiosks in North America.
Olea provides complete engineering, design, and support for internet, interactive, retail kiosks.
Call Olea at 800.927.8063 or international at 800.927.8063
Better kiosks thru intelligent design...