I was wondering if it is possible to write a script to do a save as that overwrites a file without having to deal with the warning dialog boxes e.g "...the file already existi. Do you want to replace it etc."
The reason I want this;
I just found out that say you had a resource-heavy file with a bunch of images etc that was say 50MB, even if you delete all the content so it's a blank document and do a regular save, the file will still be 50MB. But if you did a save as and overwrote it it would go down to say 1MB. So doing regular saves causes a lot of file size bloating. If I could do save as's this would keep all my file sizes way down. I just dont like having to deal with the warning dialog boxes when doing so.
Try the following
// app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS; var doc = app.activeDocument; var file = File(Folder.desktop + '/test.ai'); doc.saveAs(file); // app.userInteractionLevel = UserInteractionLevel.DISPLAYALERTS;
I run it multiple times on same document, and it does not show any alert that file already exists. You can try and let us know if that works for you.
Thanks for your reply.
When I try to run the script I get the error below. Do you know what I would be doing wrong?
My mistake. I have written that for Illustrator.
Could you please the following version. I could not find direct methof saveAS but when I use stationary flag as true(second parameter), it keeps file size small
var doc = app.activeDocument; var file = File(Folder.desktop + '/test.indd', true); doc.save(file);
Also, I would like to have an expert's comment what does exactly stationary flag means here.
This doesnt overwrite the existing file I have open. It creates a new file on the desktop called "new", but it does indeed reduce the filesize down alot which is good. Is there a way to make it overwrite the initial file thats open and being worked on and not create a copy on the desktop?
Did you try to change the path of the file?
I am using the hard code path, that's why it is saving at Desktop. Try following version assuming your file is saved once.
var doc = app.activeDocument; var _path = doc.fullName; var file = File(_path); doc.save(file, true);
No sorry I hadn't. I'm not very knowledgeable with code.
It seems like it has issues if the folder has spaces in it I think since I get the below error message.
I tested on an indesign document placed on the desktop and it ran without giving me the error. However, it created a copy on the desktop and replaced the spaces in the filename with %s.
Give this a try, it will save over the open document when you execute the script even if no changes were made ...
doc = app.documents; myDocFolder = doc.filePath; doc.save(File(myDocFolder.fsName + "/" + doc.name));
Thank you so much! This worked perfectly. I really appreciate your help, this will be a lifesaver.
And the short version of Mike's script is