I have 100,000 identically-sized, but unique, PNG/JPG images which I want to automatically layout onto A4 sheets which can then be exported as print-ready PDFs.

So assuming I can fit 8 of these images per page in a 4x2 grid, I'm looking to input my 100,000 images and output 12,500 PDFs.

I'm a programmer so I could probably write a script to do this myself (e.g. PHP/Python), but I was wondering whether there are any tools/scripts/software that already exists that can do this automatically.


InDesign has a script for exactly that.

Open the scripts panel and find ImageCatalog.jsx. It will let you choose a source directory and will auto import all the images based on your settings.

| improve this answer | |
  • Will it present a 12K page document at the end? – horatio Jul 17 '13 at 17:06
  • Never tried it - you tell me! It is a javascript script file, it could be modified to accomplish any combination of file saving/splitting/closing/opening. See the InDesign Scripting Guide for reference. – John Jul 17 '13 at 17:54

I'm going to give you 75% of a solution, I can't figure out how to get past the final limitations.

I was initially thinking this could only be done with a custom script. But, as odd as this sounds this could be accomplished through an automated contact sheet merge in Photoshop. Obviously its not its intended use, but it accomplishes what you need. My example was used on 8 random images.

enter image description here

I used the Contact Sheet II (This is Creative Cloud, but I believe it is available in CS6 as well) and I merged 8 images into 2, (2column x 2row) contact sheet as you can see.

enter image description here

The problem is that because this was not its intended use what you are looking at is opening 12500 documents at once and Photoshop won't be able to handle that. So I then tried to automate the process using Photoshop Actions to save as pdf and close after every contact sheet merge. I recorded the action and then tried batching the action on the source directory-- The problem is that the Contact Sheet II action itself is its own loop. It will want to open and create every single combined file before it gets to the close action.

Now I say 75% of a solution because I know changing this process takes a little bit of ActionScript magic that I don't personally know how to do, but hopefully your programming background will allow you take this solution and make it functional

| improve this answer | |

Use LaTeX. All modern TeX engines can read png/jpeg; imposing them on a 4x2 grid will be simple. And you can be sure that it will quickly create 12k pages.

More information is at TeX.SE.

| improve this answer | |
  • How easy is it to get set up with LaTeX? I was under the impression that there was a steep learning curve... – Brendan Jul 17 '13 at 18:10
  • @Brendan: This task seems simple; if you ask nicely on TeX.SE, someone will probably give you a working solution. – Martin Schröder Jul 17 '13 at 19:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.