Do you receive native image files from your clients or from internal departments? If so, you probably have a routine of opening these files in their native applications and doing a “Save As…” or “Export > Save as PDF…” to standardise each file before preflighting and output can take place.
Enfocus Switch can easily automate native file conversion to PDF and it recognises a large variety of image file formats (see screenshot for a list of some of the supported file types).
Maybe you’re already saving yourself some trouble and time using automated actions that can convert these files, but what happens if one of your clients asks if you can convert hundreds of images a day into either hi-res PDFs for printing and lo-res PDFs for proofing? Sure, you could create an action to batch convert to PDF using image editing software such as Adobe Photoshop, but how do you then sort files based on resolution? This is a manual process that can take valuable hours of time, and it’s just one example of how Enfocus Switch can work in the background processing repetitive tasks to streamline your workflow.
Let’s take a look into how Switch can accomplish this task…
First, how do you get your files into the flow?
Enfocus Switch can import files from many different sources, such as monitoring email addresses, watching a network hot folder, listening for webhooks or monitoring FTP sites. For this use case we are going to focus on files that are coming in from an FTP server.
We start the flow with an FTP Receive element and configure this to monitor the FTP server where the artwork is uploaded. Switch will check the FTP site regularly for any recently uploaded files and automatically bring them into the flow (you can set the frequency and schedule of these checks within the FTP element properties panel). In this scenario, the artwork files may have been compressed so Switch will also be downloading .Zip files and performing an automatic unarchive (unzip). Enfocus Switch remembers which files it has previously downloaded and will only download anything that is new or alternatively, you can set this up in the properties panel to delete the original file from the FTP server after Switch has downloaded the file to streamline your FTP server housekeeping.
To unzip the file we use the ‘Unarchive element’ which allows us access to the image files inside the archive folder. This will need to be opened using a ‘Job dismantler’ element to allow the files to go through the flow individually. See this article for more info on routing: Unarchiving And Sorting Files Automatically With Enfocus Switch. Once each image is a separate file, it can be routed through the flow for sorting and converting. Try to plan and anticipate the unexpected from customer files so your Switch flow is prepared and can route other files or job types accordingly. We’ve done that in this use case so in the event the input folder also contains PDFs and text files alongside the image files, Switch will know what needs to happen and can route those to where they should go instead of causing an error.
A good tip when building flows is to try to anticipate all possible scenarios and be prepared to add conditions to filter any unexpected file types and route them down a different path in your flow (see the illustration below). As a rule of thumb, any file that goes into a flow must be able to follow a route through it, even unexpected files need to go somewhere. If a file does not match any routes to proceed through the flow then it will be placed in the ‘Problem Jobs’ folder and an error message will appear in the Messages Panel. We recommend that when creating flows you test for these issues and set up conditions like ‘All other jobs’ to filter these files to an internal email or manual checkpoint.
Every element that we have been using so far in this Switch flow (FTP Receive, Unarchive, Job Dismantler) are included in the powerful Switch Core Engine base software. For the next stage of our flow, we are looking to convert the image files to PDF and for this process we will utilise the Execute Command element which is another highly useful tool that’s included in the Switch Core Engine.
The Execute Command element allows Switch to execute a system command, control console applications or drive command line (CLI) applications. The benefits to using CLI applications is that they lend themselves to an automated workflow as they have no graphical user interface, run in the background and can be controlled through scripts or in this case, with Switch. This means files can be processed automatically in a more efficient manner reducing both time and resources compared to opening up each file individually within a desktop application with a graphic user interface (GUI). Whilst Switch can push files to 3rd party desktop applications for image manipulation or file conversions, interacting with a 3rd party desktop application consumes far more time and resources on the server versus having Switch drive a CLI-based application.
For our image editing scenario, we are going to use a well known CLI application called ImageMagick. To do so, we will need to set up the Execute Command properties panel to convert the images to PDF.
Let’s have a look at the properties we have set up for the Execute Command element and also the ‘Argument’ used to convert to PDF:
If we start from the top:
Name explains what task we are performing, in this case it will be “Convert Images to PDF”.
Description can be used to explain what this action performs, if required.
Execution mode should be setup as concurrent which means that multiple files can get processed simultaneously.
Command or path connects to the application and can be found by browsing or typing in the path to where the application executable is installed.
Arguments is the property where we will tell the application what we would like to do with the files.
Output reflects what the application does with the output. For example, if you run the application outside of Enfocus Switch, what do you get as output? Are you getting a file next to the input file or are you getting a folder with the output file inside of the folder?
Enfocus Switch has very useful tool tips and if you hover your mouse over a property, they will appear with information that can help explain what you need to do.
The tool tip on the right appears by hovering over the ‘Arguments’; property, and we have created the argument with this information to setup input and output paths:
%1: the absolute path of the input file/job folder and %2: the absolute path of the output file/job folder (which doesn’t yet exist).
Let’s explain this further:
Enfocus Switch needs to understand what the action will be, so we start our argument by telling it that we want to ‘convert’ our incoming files. The tool tip says that %1 is the path for the incoming file, and %2 is the path for the outgoing file. If you read further down to Note 2 it specifies that ‘argument values that may contain spaces (such as file paths) should be enclosed in quotes’. As this argument does have a space between the input and output paths, quotes will be required.
Following this tool tip the argument is created: convert “%1” “%2”. If we would do this outside of Switch directly calling ImageMagick in our Terminal or Command Prompt, our full command would look like this “magick convert in.jpg out.pdf”. Please see this page with other options that can be added to the ImageMagick arguments: https://imagemagick.org/script/convert.php.
As mentioned above, there is a space between the two values, so be aware of this when setting up your argument.
Fail if exit code is – if a file cannot be processed for any reason then it will fail and be moved to the problem jobs folder and an error message will appear in the messages log.
Now that we have set-up all the image files to be converted into PDFs, we can send them to the next stage where we can check the resolution of each file and route them to hi-res for printing or lo-res for proofing.
Setting up the condition for sorting the images
With Switch you have a couple of options with how you would like to check and route the incoming files. You could set up a condition on a connector and use the Switch variable ‘[Image.XResolution]’ to check the resolution of the incoming PDFs and send them to different folders based on the resolution values. Alternatively you can set up a preflight profile and check the resolution using PitStop to fail any PDFs with image resolutions lower or equal to say 72dpi which will filter these files down the ‘Error’ output connector for proofing.
Benefits of this workflow
Time is of the essence in any print environment so finding ways to work more efficiently and increase throughput is essential. The Switch workflow in this tutorial removes time-consuming repetitive steps that are necessary in order for image files in customer jobs to be onboarded. When these steps are automated, native files enter the workflow and Switch does the work communicating to 3rd party applications about what needs to happen to the files. Native files are converted into PDF without any staff being pulled away from more complex or profitable work, allowing for other mission critical processes (such as PDF preflighting for quality assurance) to be performed (automatically if you’re using PitStop Server with Switch!).
Often we see CSRs who do not have access to Adobe Creative Cloud applications, so imagine giving them access to drop customer-supplied native files into a hot folder and having Switch convert those into PDF, and speak with other tools like PitStop Server to check the file for errors and email back a PDF preflight report, all without interrupting prepress staff. Automating these upstream processes is an “easy win” for your business because jobs will simply move through the workflow without delays.
With this Switch flow, most manual steps no longer require physical time and attention so jobs can go to press sooner, there’s less stress to you and your team and your customers receive superior service which will have them returning to you.
Curious to learn more?
We offer free workflow evaluations for new customers so you have nothing to lose!