• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Script to change bulleted and numbered lists to text without converting the Paragraph Styles

Participant ,
Mar 27, 2023 Mar 27, 2023

Copy link to clipboard

Copied

I've seen a posts here about using the "Convert Bullets to Text" contextual option in text as well the method app.activeDocument.stories.everyItem().convertBulletsAndNumberingToText(); however neither is satifactory so ive been writing a script to change the copy in a document that has a bullet or number list style applied to converted text, but i'm having trouble figuring out how to script  going through the text, identifying the ones with specific paragraph styles ( there are 6 styles, all set within two layers of groupings: Body Styles [group] > Lists [group] > Bullet lvl 1 [style].

heres what ive tried to so, but i realized that it was converting the whole style not the text with the style.

 

var bul1 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Bullet lvl 1" );
var bul2 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Bullet lvl 2" );
var bul3 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Bullet lvl 3" );
var num1 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Num List lvl 1" );
var num2 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Num List lvl 2" );
var num3 = doc.paragraphStyleGroups.itemByName( "Body Styles" ).paragraphStyleGroups.itemByName( "Lists" ).paragraphStyles.itemByName( "Num List lvl 3" );
 
// app.findTextPreferences.appliedParagraphStyle = bul1;
// bul1.convertBulletsAndNumberingToText();
// app.findTextPreferences.appliedParagraphStyle = bul2;
// bul2.convertBulletsAndNumberingToText();
// app.findTextPreferences.appliedParagraphStyle = bul3;
// bul3.convertBulletsAndNumberingToText();
// app.findTextPreferences.appliedParagraphStyle = num1;
// num1.convertBulletsAndNumberingToText();
// app.findTextPreferences.appliedParagraphStyle = num2;
// num2.convertBulletsAndNumberingToText();
// app.findTextPreferences.appliedParagraphStyle = num3;
// num3.convertBulletsAndNumberingToText();

// alert('Bullet lvl 1, 2, 3 and Number List lvl 1, 2, 3 converted to text.')
TOPICS
Scripting

Views

748

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Mar 28, 2023 Mar 28, 2023

Rather than using InDesign's Find to look for styles, you may be better off cycling through paragraphs and checking their style names. Something like this:

 

par = doc.stories.everyItem().paragraphs.everyItem().getElements();
re = /(Bullet|Num) lvl [123]/;
for (i = 0; i < par.length; i++) {
  if (re.test (par[i].appliedParagraphStyle.name)) {
    // do something
  }
}

 

Peter

Votes

Translate

Translate
Participant ,
Mar 27, 2023 Mar 27, 2023

Copy link to clipboard

Copied

all those bottom lines are shown as commented out, i just forgot to un-comment them before posting but when active they convert the entire style to text, removing the list formatting entirely, and 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 27, 2023 Mar 27, 2023

Copy link to clipboard

Copied

You can go back and re-edit your original post - there is no time limit.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

I dont see any option to edit a post or comment, am i just completely missing it?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

Click '. . . More' and one of the options is 'Edit message'.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

I don't see that option on any of posts or comments. under my post i have: views, translate, report, follow, and reply. would be labeled as community beginner effect the options on posts i have?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

I've no idea.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

Hi @SweatersInSummer , I think you need to loop through the paragraphs and remove the overrides that are created when you change the paragraph styles—paragraph.clearOverrides()

 

https://www.indesignjs.de/extendscriptAPI/indesign-latest/#Paragraph.html#d1e501544__d1e508156

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

Rather than using InDesign's Find to look for styles, you may be better off cycling through paragraphs and checking their style names. Something like this:

 

par = doc.stories.everyItem().paragraphs.everyItem().getElements();
re = /(Bullet|Num) lvl [123]/;
for (i = 0; i < par.length; i++) {
  if (re.test (par[i].appliedParagraphStyle.name)) {
    // do something
  }
}

 

Peter

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Mar 28, 2023 Mar 28, 2023

Copy link to clipboard

Copied

This was the answer i was circling around, thank you Peter. I was trying to loop through the paragraphs but had difficulty figuring out the correct syntax to access the .paragraphs, but the InDesign Object Model on indesignjs.de is kind of difficult to understand at times. for posterity my final code looks like:

var doc = app.activeDocument;

par = doc.stories.everyItem().paragraphs.everyItem().getElements();
re = /(Bullet|Num List) lvl [123]/;
for (i = 0; i < par.length; i++) {
  if (re.test (par[i].appliedParagraphStyle.name)) {
    par[i].convertBulletsAndNumberingToText();
  }
}

alert('Bullet lvl 1, 2, 3 and Number List lvl 1, 2, 3 converted to text.')

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 23, 2024 May 23, 2024

Copy link to clipboard

Copied

Thanks for your help, Peter. Is there any way to tell the script to look inside all the tables inside a document?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 23, 2024 May 23, 2024

Copy link to clipboard

Copied

Yes, there is. This version handles tables:

par = doc.stories.everyItem().
  tables.everyItem().
  cells.everyItem().
  paragraphs.everyItem().
  getElements();

re = /(Bullet|Num) lvl [123]/;
for (i = 0; i < par.length; i++) {
  if (re.test (par[i].appliedParagraphStyle.name)) {
    // do something
  }
}

It deals only with tables, so you would still need the previous version for the main text. (You need a separate version for footnotes as well).

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 23, 2024 May 23, 2024

Copy link to clipboard

Copied

LATEST

Uauuuu.... superb, Peter. Thanks a lot!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines