How to check the printer status before sending a pdf to the printer
Q: We are rolling out a process at one of our customers which requires printing a PDF to a printer. With our tooling, we are not getting confirmation if this printout succeeded/ failed. Can we use Limagito to read a folder, send the PDF to the fixed printer and then return something to our bot? That may be something like a separate file, with the details of the job.
A: We added some extra options in version v2024.2.24.0 to achieve this. The following blog article is just an example, other possibilities are available. Just let us know if you need any help.
We added an update of this blog article here
- We used a Windows Folder as Source:
- Filename include filter is set to *.pdf because we only want to handle pdf files:
- We enabled ‘File Memory’ because we only want to print the same pdf file once:
- The Function is set to ‘Copy’ because we want to leave the original pdf at the source (this is not a must, also ‘Move’ is possible):
- Destination Options is set to ‘Exit Cyclus on Error’.
- This ‘Exit Cyclus on Error’ will skip the next Destination in case of error.
- Destination Options is set to ‘Exit Cyclus on Error’.
- We added two destinations:
- First destination is our ‘Pascal Script’ option: This script will check the printer status and if the status is not OK then it will not print the pdf. The error status can be used to trigger an email event.
- Second destination is our ‘PDF’ option: This destination will print the pdf file.
- First Destination: Pascal Script
- Please add the following script: link
- We added the following Const values which you’ll need to adjust:
- ctCheckPrinterConnection: This will add the possibility to check the printer using its IP (or Hostname) + Port.
- Set this value to ‘TRUE’ if you want to use this option, otherwise set this Const to ‘FALSE’.
- cpPrinterIP: If ‘ctCheckPrinterConnection := True;’ then add the IP (or Hostname) of the Printer we need to check.
- ctPrinterPort: If ‘ctCheckPrinterConnection := True;’ then add the Port of the Printer we need to check. We used port 23 which is the default Telnet port. Most printers are able to received commands directly on that port.
- ctPrinterError: In case the status of the printer (received from the Windows Spooler) contains 2 then we’ll handle this as Error.
- ctOutputPathError: In case of Error we’ll write a txt file in this path (must end with a \ ). The text file has the name of the source file but with ‘.txt’ as extension.
- The content of this text file contains the source filename + the error received.
- This can be adjusted, please let us know if needed.
- ctCheckPrinterConnection: This will add the possibility to check the printer using its IP (or Hostname) + Port.
- Don’t forget to adjust the Printer name needed to check that status from the Windows Spooler
- Second Destination: PDF
- Click ‘Add’
- Adjust Description
- Check ‘Enabled’
- Select ‘Print PDF File’
- Switch to ‘Print’ Tab
- Disable ‘Use Default Printer’
- Select the printer you need from the combobox ‘Available Devices’
- Click the + button
- RunTime Log Result:
We detected that the printer connection was available but the Windows spooler returned an error status. This is why we didn’t print the pdf and returned an error which can be used to send the ‘On Error’ email event. In this event you can use the parameter %VSE which contains the status information from the printer.
- Error Event Setup
- Please open our ‘Rule Events’ option:
- Select and enable the ‘On Error’ event
- Check ‘Enable Mail’
- > SMTP Setup
- > Message Setup
- When done, this setup can be tested using our ‘Test’ button
- Select and enable the ‘On Error’ event
- Message Setup:
- Always use a valid ‘From’ email address because some SMTP servers will reject the message without returning an error.
- We used our parameter %VSE in the body because it contains the error information from the printer.
- Message Setup:
If you need any help with this ‘check the printer status’ request, please let us know.
Best Regards,
Limagito Team
#pdf #managedfiletransfer #filetransfer #filemanagement