Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need to create what are essentially 'postcards'. That is each page will contain a photo with a caption underneath. One per page, all images are the same dimensions. There are about 100 images that need to be added with different captions.

This really isn't a technically a template because the image will be different on each page and I'm not sure if there's any built in way of doing this - or if I need a macro or something else altogether.

Ideally I need to be able to resize the images after they've been imported into the document, but that's not essential.

(Word is not essential - something that would create PDFs would be fine too)

share|improve this question
add comment

1 Answer

Ok, this is doable with Word's Mail Merge feature. Because you did not specify, I'm going to assume you're using Word 2010, though older versions would work too (I just don't know how to use them myself). The images do make things somewhat complicated.

  1. Get a list of your images (paths) and captions in some table format. Excel spreadsheets and CSV tables work as well. Make sure all backslashes \ in the paths are replaced with /. Here is a batch script you can run to grab all jpg, png, bmg and gif files in the folder and export as a CSV (filename becomes caption).

    @ECHO OFF
    
    ECHO ImagePath,ImageCaption>images.csv
    
    SETLOCAL EnableDelayedExpansion
    
    FOR /F "tokens=*" %%i IN ('dir /b *.jpg *.png *.bmp *.gif') DO (
    SET ipath=%%~fi
    ECHO !ipath:\=/!,%%~ni>>images.csv
    )
    
    ENDLOCAL
    
    ECHO Images saved in %CD%\images.csv
    
    PAUSE
    

    You can modify the CSV table in Excel.

  2. In Word, click the Mailings tab and select Start Mail Merge. Letters will do.

  3. Click Select Recipients > Use Existing List and select your table.

  4. The delimiters should be correct by default, but if you are using some other format it won't hurt to check. Field delimiter is what should separate the image path and caption (I really hope you don't have commas in your filenames!), while record delimiters separate image entries, i.e. one record per image. A new line (enter) is the normal method.

  5. Click Insert Merge Field > ImagePath (or whatever holds the path to your images). Click on the newly inserted field press Alt+F9.

  6. Select MERGEFIELD ImagePath inside the braces {}, and press Ctrl+F9. It should now look like {{ MERGEFIELD ImagePath}}.

  7. Type INCLUDEPICTURE in between the two opening braces, and put quotes outside the MERGEFIELD braces, like so: {INCLUDEPICTURE "{MERGEFIELD ImagePath}"}. Note all braces are special braces, inserted with Ctrl+F9, so do not copy and paste.

  8. Click Insert Merge Field in the Ribbon Mailings tab and select the Caption field.

  9. Press Ctrl+A to select all, then Alt+F9 to switch from field code to preview. If you see empty space or do not see an image, select all and press F9 to update. You will have to update again after generating the final document.

  10. Arrange as you like. Don't bother resizing here (until the final page is generated), it does not seem to work. There is an addon that claims to allow automatic resize, but it's not free (there's a trial).

  11. You are now done. Click Finish & Merge in the Ribbon Mailings tab and Edit Individual Documents. If you can still see the fields instead of images, select all (Ctrl+A) and press Alt+F9. Select all and press F9 to make sure all the images update - otherwise they may end up just repeating the first image. You can now save the resulting file as a PDF.

Good luck.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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