: Indesign script to automate GREP Find/Replace This question follows on from my previous question on the subject of GREP and find/replace functionality of InDesign. To summarize the situation, my
This question follows on from my previous question on the subject of GREP and find/replace functionality of InDesign. To summarize the situation, my InDesign document has 3 character styles applied to the text at various places: bold, italic, bolditalic. The names of those character styles are self-explanatory.
I want to write a script that looks for text styled with any of the above character styles and wraps them in an appropriate HTML tag. For example, I want all text styled as bold to be wrapped in the <b>...</b> tags, and so on. In my previous question, the accepted answer by Jongware does an excellent job of explaining how to perform a manual Find/Replace using GREP. Now I wish to automate the process by writing a script to handle it. Here's my first attempt:
app.findGrepPreferences=app.changeGrepPreferences=null;
app.findGrepPreferences.appliedCharacterStyle="bold";
app.changeGrepPreferences.changeTo="<b>[CO]</b>";
app.activeDocument.changeGrep();
This works except that it only wraps thew first character of the affected text in the given tags and erases the rest. Thus a text like "This is an example text." changed to "This is an e text." What am I doing wrong?
More posts by @Cooney243
1 Comments
Sorted by latest first Latest Oldest Best
Never mind. I got it to work with just one extra line of code. Putting the modified code in here for anyone else to benefit:
app.findGrepPreferences=app.changeGrepPreferences=null;
app.findGrepPreferences.findWhat=".+";
app.findGrepPreferences.appliedCharacterStyle="bold";
app.changeGrepPreferences.changeTo="<b>[CO]</b>";
app.activeDocument.changeGrep();
The extra line that was missing from my original snippet is the second one:
app.findGrepPreferences.findWhat=".+";
Thanks.
Terms of Use Create Support ticket Your support tickets Stock Market News! © vmapp.org2024 All Rights reserved.