Skip to main content
Participant
May 5, 2022 5:49 AM UTC
Question

script for removing empty text frames

hi

i have a document that is well over 400 pages and everytime i delete a page; some empty frames appear in the middle of the page.

 

instead of removing them one by one, ive tried a couple of scripts ive found via google, however they are working too well and removing everything- including coloured frames that i need.

 

i have no clue how to write scripts so if someone could give me one that would be amazing.

 

thankyou in advance!

This topic is closed to new replies. Start a new post to keep the conversation going.

9 replies

Robert at ID-Tasker
Legend
Oct 22, 2024 12:32 PM UTC

@con1499

 

If you work on a PC, you could use my ID-Tasker tool. It's not free, but you can create a Task, that will get a list of objects with properties you need - kind of "preflight" - and then you can have another Task that will remove those objects. 

Two separate Tasks, just in case, so you can be sure that you won't remove something important - you can visually inspect pre-selected objects for deletion.  

 

The main advantage of my tool - you don't have to ask anyone to update initial script - you can modify Task(s) at any time, any way you want. 

 

Free version can still be helpful - you can still get list of objects, do this preflight, but you won't be able to remove them in bulk automatically. 

 

And you can do a lot more than this - ID-Tasker can replicate pretty much every mundane click that you can make manually - and not only in InDesign. 

 

Translate
Inspiring
Oct 22, 2024 11:53 AM UTC
Community Expert
May 5, 2022 6:24 AM UTC

Hi @con1499,

What is your definition of an empty frame? And by frame do you mean textframes or retangles, ovals as well?

-Manna

Translate
-Manan
con1499Author
Participant
May 5, 2022 6:28 AM UTC

see attached image. the frames in the middle of the page is what needs removing.

the other scripts were also removing the red rectangle frames as well as the grey backgrounds.

Translate
Community Expert
May 5, 2022 7:01 AM UTC

Try the following code

var pis = app.documents[0].pageItems.everyItem().getElements()
for(var i = 0; i <pis.length; i++){
	var pi = pis[i]
	if(pi.hasOwnProperty("contents"))
	{	if(pi.contents == "" && pi.fillColor.name == "None")
			pi.remove()
	}
	else if(pi.pageItems.length == 0 && pi.fillColor.name == "None")
		pi.remove()
}

-Manan

Translate
-Manan