Troubleshooting Guide: The Printing Process Follow
BarTender Content Team
At the heart of BarTender and its many components is the printing process. When a print job fails, inspecting this process may help pinpoint where the issue occurred and how to fix it.
Here is a flowchart of the normal printing process with BarTender.
When something goes wrong, it's either a break in one of those chains, or it's a problem in one of the steps. You can make your troubleshooting process more efficient by starting with the green process and moving through to the orange process. By troubleshooting each step in order, you ensure that you're not troubleshooting an issue that was broken in the previous.
Below, each of the processes are broken down as well as where to look for potential issues. This is not a definitive guide for troubleshooting the printing process, but it is enough to get you started.
Requesting Print Jobs
It is important to understand what initiated the print job when starting the troubleshooting process. For applications like Designer or Print Station, the print job begins when the user clicks the print button. Automations such as Integrations or the SDK simulate this action, initiating the print without any direct user interactions.
While clicking the print button doesn't require any troubleshooting, automations have a number of components that should be analyzed for any issues. Examine the trigger files, the configuration for Commander or Integration Builder, or your code that calls the print commands in the SDK or ActiveX automations.
- Is the printer listed correctly?
- Is the number of copies a valid number?
- If you are using commands such as Print Command Scripts or BTXML, are you missing any special characters or commands?
If the commands or calls are wrong, correcting them may fix the issue and you may not need to continue the troubleshooting process.
- Understand how print jobs are being initiated
- Check all settings/commands for the print job
Getting Data to Print
This is an important step in the printing process, and one that is often prone to breaking. BarTender can retrieve data for printing through a wide variety of means including data entry forms, database connections, and data contained within a trigger file. When something goes wrong at this step, you want to ensure that BarTender is able to connect to the data source and that it contains the correct information.
While data entry forms are a bit harder to troubleshoot as it could easily boil down to user input error, database connections are easier to control. You primarily see these when printing from Designer, Print Station, and Print Portal, though they may also show up in integrations and automations as well. You want to make sure that BarTender is able to connect to whatever database is in use and that the database contains the correct information. This can usually, but not always, be done by simply opening BarTender's Database Connection Setup dialog.
When an automation such as an integration come into play, the data likely originates outside the label. This makes troubleshooting this step in the process a bit more difficult as the data could come from a myriad of sources. Not an exhaustive list, but here are some suggestions when working with automations to get you started:
- Check the integration logs in the Administration Console or in Integration Builder for errors
- Check the trigger file (for most integrations) to ensure it has data and the correct data
- Check the database connection (for database integrations) to ensure there are no errors connecting
- Ensure the trigger file database type matches the label's database. If a label is connected to a CSV file, for example, you cannot give it an XML database in an integration. The database types do not match.
- If you are using named data sources, ensure that all are listed. Empty or unlisted named data sources may simply use sample data during print time.
ActiveX and .NET applications have more potential data sources, increasing the complexity, however some of the same basic troubleshooting principles as listed above may apply and help locate any data issues.
- Make sure BarTender can connect to the database
- Make sure the database has right information
Turning data in a print request
This step in the process is highly dependent upon the individual template printed. It involves processing any transforms and performance optimizations before job is turned into usable printer code. This step is very situational and may take more investigation depending upon the complexity of the label and the printer used.
Transforms are the larger of the two types of data processing. They can appear in a number of places, but with some careful investigation, you can work through each one depending upon what your label or automation uses.
- Data source transforms are transforms applied to any object on your label. A text object, a barcode, a database field, all can have transforms of some kind. Opening the transform dialogs for each object which has one can help locate a potential problem within them
- Document actions allow for certain transforms to happen on the start or during print time. Looking for any document actions which are not labeled as taking place after a print job may help locate any troublesome transforms
- Document-level scripts may be a bit more difficult to troubleshoot. Review any scripted events and look for any scripted errors to troubleshoot this potential transform.
- Integration transforms are performed at the integration level and are found in the integration file as opposed to the label file. Unlike label transforms, integration transforms may potentially affect any document that is used with this integration. Check for any of the transform actions listed in the linked help file and ensure that all the transforms are working correctly.
Performance optimizations are found on the print dialog in BarTender Designer and are only available if you're using a Seagull printer driver. If you have this tab available, turn off all printer optimizations. If that fixes the issue, turn them on one by one until the offending optimization is located. If this does not fix the issue, move onto the next section.
If you are not using a Seagull driver, please refer to your printer manufacturer's website or support for assistance with optimizations.
- Check all Transforms and data sources in BarTender
- Check the Performance tab in BarTender
Converting Print Request into Print Code
This step involves a number of different technologies to get a print job from BarTender to your printer. The conversion into printer code involves a conversation between BarTender and the printer driver and is best done when using Seagull drivers. Take a look at the Drivers by Seagull white paper.
After the conversion is complete, the job must be queued up and then sent off to the printer itself.
If you want more technical information on how print code actually gets created, here are a couple links to get you started:
While much of this process is complicated and allows for very little control, there are some ways to ensure this step is working properly.
First, you can simply print to file which will generate a file on your PC that contains the print code that would normally be sent to the printer. This is contains all the instructions for your print job in your printer's language. While you may not be able to read this file easily, you should see data within this file.
If you are experiencing intermittent issues with print jobs, Seagull drivers are capable of recording the printer code that it generates. By doing so, you can compare a bad print job to a good one then look up the offending instruction in the printer manuals. To turn on print code recording, refer to the help file in the printer's Printer Properties.
The final part of this process is handing the printer code off to the printer queue. Small jobs will tend to enter and leave the queue before you're able to spot them. Pause your printer and send a job from BarTender, ensuring you see the job appear on the list. Unpause the printer and ensure it leaves the queue without errors.
- It's "complicated"
- Always use Drivers by Seagull (when available)
Sending data to the printer
This final step involves the connection to the printer and the physical printer itself. If all the previous steps have passed all the tests, the issue likely lies here.
First part of this process is sending the job. This could be sending it over a cable to a printer connected via USB or sending it across the network. Checking the connectors is important to ensure that the printer code can reach the printer itself.
- If it is a USB printer, ensure the USB is properly connected on both the printer and the computer.
- If it is a networked printer, check for any networking slowdowns or traffic issues. You may need to consult your IT or use a third party tool such as WireShark to help you troubleshoot this step of the process.
After ensuring the connections are working properly, it's time to look at the physical printer.
- Does the printer error out whenever you send a print?
- Is it printing garbage data?
- Is there something physically wrong with the media, the ink, or the ribbon?
While the first is best handled by the printer manufacturer, the second may be solved by flushing the printer's cache. Check your printer's user manual for steps on how to do this. Your printer manual may have steps to help troubleshoot physical issues as well.
- Make sure PC can connect to the printer
- 3rd party tools can help diagnose issues