Script keeps lopping and nothing happens
Hey guys,
Creating a new post to see if anyone can help me to sort out an issue with a script. Just to give you all a bit of context - @m1b helped me to put together a script that reduces font size and I added in some more codes to redefine Paragraph and Character styles as well, but only if there are no manual overrides on text. So, in case of any override, none of the styles are redefined to preserve formattting. So far so good. The problem is that, in case of no overrides found in the document, the script keeps lopping and nothing happens. Could you please help me to figure out why? Any help would be greatly apreacitated! 🙂 Thanks, Rogerio.
var doc = app.activeDocument;
// search for overrides on paragraphs and characters
// turn on Style Override Highlighter for visibility
doc.textPreferences.enableStylePreviewMode = true;
for (s = 0; s < doc.stories.length; s++) {
var myStory = doc.stories[s];
for (p = 0; p < myStory.characters.length; p++) {
var myCharacter = myStory.characters[p];
for (p = 0; p < myStory.paragraphs.length; p++) {
var myParagraph = myStory.paragraphs[p];
if(myCharacter.styleOverridden == true){
if(myParagraph.styleOverridden == true){
alert("This document contains manual overrides on text. Styles will not be redefined to preserve formatting.");
// turn off Style Override Highlighter
doc.textPreferences.enableStylePreviewMode = false;
function main() {
// adjust this function to suit your needs
function myTextAdjuster(text) {
if (text.pointSize <= 6)
return;
// reduce point size by 1 point
text.pointSize -= 1;
/* remove auto leading */
if (Leading.AUTO === text.leading)
text.leading = (text.pointSize * text.autoLeading / 100);
/* reduce leading by 2 points - only do this if you already removed auto leading! */
text.leading -= 2;
/* turn autoleading on and set auto value to 120% */
// text.leading = Leading.AUTO;
// text.autoLeading = 120;
};
app.scriptPreferences.measurementUnit = MeasurementUnits.POINTS;
var everyStory = app.activeDocument.stories.everyItem();
var textStyleRanges = everyStory.paragraphs.everyItem().textStyleRanges.everyItem().getElements();
try{
if (everyStory.tables.everyItem().cells.everyItem().paragraphs.length)
}catch(e){}
try{
textStyleRanges = textStyleRanges.concat(everyStory.tables.everyItem().cells.everyItem().paragraphs.everyItem().textStyleRanges.everyItem().getElements())
}catch(e){}
try{
if (everyStory.tables.everyItem().cells.everyItem().paragraphs.length)
}catch(e){}
try{
textStyleRanges = textStyleRanges.concat(everyStory.footnotes.everyItem().paragraphs.everyItem().textStyleRanges.everyItem().getElements());
}catch(e){}
for (var i = textStyleRanges.length - 1; i >= 0; i--)
myTextAdjuster(textStyleRanges[i]);
};
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, 'Reduce Document Text Sizes');
// redefine styles if no overrides were found in the document
if(myCharacter.styleOverridden == true){
if(myParagraph.styleOverridden == true){
exit();
}
}
for (s = 0; s < app.documents[0].stories.length; s++) {
var myStory = app.activeDocument.stories[s];
// loop through each paragraph style in the document
for (var i = 0; i < myStory.paragraphs.length; i++) {
var para = myStory.paragraphs[i];
var paraStyle = para.appliedParagraphStyle;
paraStyle.properties = para.properties;
}
}
for (s = 0; s < app.documents[0].stories.length; s++) {
var myStory = app.activeDocument.stories[s];
// loop through each character style in the document
for (var i = 0; i < myStory.characters.length; i++) {
var chara = myStory.characters[i];
var charStyle = chara.appliedCharacterStyle;
charStyle.properties = chara.properties;
}
}
alert("Done!");
exit();
}
}
}
}
}
