Choosing the optimal settings for an industrial printing press can be a very challenging task, often requiring experts to undergo months of training. The issue is that there are many different variables at play — all influencing each other — making it difficult to pinpoint an accurate selection of settings. This problem lends itself well to a rules-based engine approach.
The Smart Job Advisor aims to solve the problem through the use of JEasy Rules, a Java-based rules engine. Its use is facilitated through a collection of control scripts tied to a ReactJS and Ant-Design front-end. This high-performance GUI enables the average user to generate optimal settings for a variety of industrial printing presses.
All a user has to do is append a collection of PDF files to a form for selecting print job attributes, like what paper they want to print it on, how densely-covered in ink the pages are, what press family they want to use, and so on. When they click submit, the control scripts on the back-end do analysis on the PDF file to get the maximum ink coverage value, then the form data is formatted and sent to the rules engine for processing.
The rules engine does analysis of the form data passed in by the front-end. A collection of .yml files define rules, which are essentially blocks of conditional logic that call functions defined in the engine’s class. The engine uses these files to select which rules are going to be run for the set of data, with different rules being run depending on the selected press family. These functions edit class variables, which eventually become the engine’s output. Being in files makes the rules compartmentalized, quickly hot-swappable, and easily editable.
The main goal of this project was to create a tool that will reduce the need for users of their presses to have to undergo expensive training to know how to operate them efficiently. We hope to achieve that goal with the deployment of the site to customers of HP.