Skip to main content
Inspiring
April 17, 2019
해결됨

Export pages to jpg with individual filenames (from photo caption in slug)

  • April 17, 2019
  • 2 답변들
  • 9598 조회

Hi Guys

I am wanting to export multiple pages of a INDD file to JPG and name the files based on a caption generated from the image on each page. (the caption appears in the slug area. Previously we have been doing this manually. We do Team and Portrait Photography, there is the option to use 'Sports Photo Automation' but this would leave me with much larger file sizes. I have seen a couple of posts relating to this but they don't seem to be specific enough and i am no scripter.

Thanks for any advice, apologies if this has been answered before.

이 주제는 답변이 닫혔습니다.
최고의 답변: darrellpones

This script seems to run when I use the original destination and I cant find the files. When I use the commented out line with a destination of c:\output it doesn't run. I am new to this can anyone advise me of the correct syntax to chose a destination?


if (app.documents.length != 0){

var myDoc = app.activeDocument;

MakeJPEGfile();

} else {

alert("Please open a document and try again.");

}

function myPS() {

try {

return myDoc.selection[0].appliedParagraphStyle;

} catch (e) {

alert("Place cursor to text with paragraph style for filenames");

exit();

}

}

function MakeJPEGfile() {

app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.high;

app.jpegExportPreferences.exportResolution = 72;

app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;

app.findGrepPreferences = null;

app.findGrepPreferences.appliedParagraphStyle = myPS();

var f = myDoc.findGrep();

for (var myCounter = 0; myCounter < f.length; myCounter++) {

try {

var curPage = f[myCounter].parentTextFrames[0].parentPage;

if (curPage.appliedSection.name != "") {

curPage.appliedSection.name = "";

}

var objName = f[myCounter].contents.replace(/ /g,"_").toLowerCase();

app.jpegExportPreferences.pageString = curPage.name;

//var myFilePath = "~/C:\output/" + myPageName + ".jpg";

var myFilePath = myDoc.filePath + "/" + objName + ".jpg"; //export to a folder of the current document

var myFile = new File(myFilePath);

myDoc.exportFile(ExportFormat.jpg, myFile, false);

} catch(e) {

//pasteboard?

}

}

}

2 답변

Community Expert
April 17, 2019

Hi Darrell,

if the caption is made with InDesign's Caption function it might be that the image's container frame is grouped with the text frame that holds the caption text.

To get the group you could access the allGraphics array of a page or you could follow a specific link in the Links collection and climb the parent tree until you find a group. Then check for the contents of a text frame that is part of the group.

Regards,
Uwe

darrellpones작성자
Inspiring
April 18, 2019

Hi Guys

Thansk for your consideration

I found a script here

https://indesignsecrets.com/topic/export-pages-to-jpg-with-custom-filenames

The PNG script works fine (doesn't name files though) but the JPG one seems to work (as it takes time to run) but I can't find the output?

My Captions are not grouped to the image, I will make the text style colour transparent once its up and running correctly

Its a 60 poage document but I will have to do thousands of these over the year so want to streamline the process as much as possible

darrellpones작성자
Inspiring
February 3, 2024

thanks for the reply! Basically I'm wanting to build a template with every possible file size that we use (currently 70+) and have them each saved as a master page with all the text boxes pre-typed and ready to go. If you use the master pages, the text box is always there and you cant mess them up. I've attached some screenshots to help make sense lol - ideally we'd open the template,  pull down whatever few pages that the current project needs, use "find/replace" to switch date_projectname, and then everything is named perfectly on export. 

The problem is the script doesn't see the text box if its on the master page. Right now, it only works if you pull down a page, then cut the text box off of the master page, and paste it onto the working page. Was hoping that I could just leave it on the master page and add some code to fix the export lol hope that makes sense. Maybe someone will see this and have an easy fix (this stuff is wayyy over my head lol) 


The only thing I can think of is a work around. Get your doc ready / Save it / Selct all the pages in the pages palette /  right mouse click / select overide all master page items / this will then bring the text blocks onto the relevant pages / export as normal / close without saving ??? would that do it? Its not ideal

Community Expert
April 17, 2019

Hi Darrell,

How are the captions generated for the image, is there only a single image on a page?

-Manan

-Manan