Forum Replies Created
-
AuthorPosts
-
Jeremy Howard
ParticipantHey Deborah,
This workflow sounds like it would be ripe for automation via a custom script. It would take a fair bit of effort to accomplish so a comprehensive solution would probably cost you some money but from what you’re describing, it sounds like the ROI would take no time at all!
Jeremy Howard
ParticipantI wonder if it might make sense to have the engineers change up their workflow so that they are using Google Docs or Google Sheets instead of Word. You could then use a plug-in like EasyCatalog to flow data directly from Google Sheets into InDesign.
Another potential solution would be WordsFlow. I haven’t used it much personally but I hear that it does some amazing things when it comes to linking content from Word files in an InDesign document.
Both of these tools allow you to update the data in place from within InDesign so that your InDesign document will always reflect the latest changes to the data.
Jeremy Howard
ParticipantI have Box Sync set up to sync to an external SSD hard drive so that I don’t need to worry about the amount of space it uses on my computer. I work with a team of people and we have the assets available in a shared folder on Box
Jeremy Howard
ParticipantGive this one a shot!
https://indesignsecrets.com/a-script-for-relinking-images.php
March 1, 2020 at 1:35 pm in reply to: app.doScript() method doesn't work properly. I don't know why? #12343096Jeremy Howard
ParticipantHey Robert,
While you are very close, you don’t quite have the proper syntax here.
Where you have this line:
app.doScript(String(main()),ScriptLanguage.JAVASCRIPT,[],UndoModes.ENTIRE_SCRIPT,’main’);You should have:
app.doScript(main, ScriptLanguage.javascript, undefined, UndoModes.entireScript, “main”);To break it down:
Part 1.) app.doScript(Part 2.) main,
This is the name of your function. No need for any quotes or parenthesis here.Part3.) ScriptLanguage.javascript,
Pretty much the same thing as what you have…Part 4.) undefined,
This is where you enter any of your function inputs. If any exist, they must be input in the form of an array. I entered “undefined” but you could use the empty array like you did (I believe that the”doScript” method can work either way)Part5.) “main”);
This can say anything at all, this is simply the label that will be displayed next to the word “Undo” if you go into your edit menu to undo the script. This could say anything. If you entered “wombats” here then your edit menu would read “Undo wombats” and that would undo your entire script.I hope that this all makes sense. Feel free to ask any questions that you may have!
Jeremy Howard
ParticipantYou could simply create a frame with two columns to achieve this. Just add a column break between “A” content and “B” content.
Jeremy Howard
ParticipantIf this is a time sensitive matter then I can suggest a “hacky” workaround for this…
I prefer to wait for a response from someone who knows the proper solution to this but if you need it in a hurry, let me know!
Jeremy Howard
ParticipantCould you please provide a link?
Jeremy Howard
ParticipantHave you tried setting baseline grids to show in certain page size percentages without any documents open? A lot of InDesign settings will be set as “document specific” settings if you have a document open when you set them.
If you have already explored this then I would just get used to using the keyboard shortcut (command+option+’)… Nice and easy.
Jeremy Howard
ParticipantGive this a shot:
var aDoc = app.activeDocument;
var docPages = aDoc.pages;for(p=0;p<docPages.length;p++){
var myPageItems = docPages[p].allPageItems
var myPageName = docPages[p].name;for(i=0;i<myPageItems.length;i++){
//set selection as variable
var thisItem = myPageItems[i];
if(thisItem instanceof Rectangle || thisItem instanceof Polygon || thisItem instanceof Oval){//get image within the frame
var myLinkedItem = thisItem.pageItems[0];
//get name of the linked image
var myLinkName = myLinkedItem.itemLink.name;//strip extension from linked image name
var myLinkName = myLinkName.split(“.”)[0];app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum; // low medium high maximum
app.jpegExportPreferences.exportResolution = 300;
app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;
app.jpegExportPreferences.pageString = myPageName;//Set Name of exported pdf to match the name of the linked image
var myFile = File(“/Users/admin/Desktop/” + myLinkName + “.jpg”);//export the pdf
aDoc.exportFile(ExportFormat.JPG, myFile, false);
}
}
}Jeremy Howard
ParticipantHey Nathan,
Good on you for being so diligent that you found your way all the way back to a post from 2016!
Here is the string you are looking for:
app.activeDocument.layers.item(“Art”).layerColor = [255,0,0];Notice the [255,0,0] instead of “RED”. This is because the layer colors need to be specified in RGB values when changing them on an existing layer.
Hope this helps!
Jeremy Howard
ParticipantI second this. I use Box & InDesign daily without any issues.
Jeremy Howard
ParticipantHey Antoine,
I actually just helped another user with this same issue earlier tonight. Rather than using the “addEventListener” just use “onClick”. Something like this should do:
radio3.onClick = function(){
//– Do things here
}That being said, if you prefer to use the “addEventListener” method for some reason, just make sure that you are applying the event listener to the proper element. Your line “var grp = dialog.add(“group”, undefined, {name: “grp”});” states that the “grp” variable is the group that the radio buttons will be nested within but then you go on to add your event listener to the “grp” variable with this line: “grp.addEventListener (“click”, clickety());”
That’s why you are getting functionality when you click the area around the radio buttons. When you do that, you are clicking on the group which is what actually has the eventListener added to it!
To make it work with that method, you would want something like: “r1.addEventListener (“click”, clickety());”
Make sense?
December 29, 2019 at 6:10 pm in reply to: How to make a click radiobutton eventListener work? #14323364Jeremy Howard
ParticipantHey there,
I am back at my computer and I threw this script together as an example to show you how the “onClick” function can be used to accomplish what you are trying to accomplish.
Check this script out and let me know if you have any questions!
//————— BEGIN SCRIPT —————//
#targetengine ‘my_session’
var myDialog = new Window (‘palette’, “Show UI Elements With Radio Button Click”, undefined, {minimizeButton: true, independent: false, closeButton: true, borderless: true, name: “Data Query Panel”});
myDialog.preferredSize.width = 500;
myDialog.preferredSize.height = 100;
myDialog.alignChildren = [‘top’, ‘left’];
myDialog.margins[1] = 10;
myDialog.spacing = 10;//– Group for radio buttons –//
var radioButtonsGroup = myDialog.add(‘group {orientation: “column”, alignChildren: “left”, alignment: “left”}’)
var radio1 = radioButtonsGroup.add(‘radiobutton’, undefined, “Radio Button One”);
radio1.value = false;
var radio2 = radioButtonsGroup.add(‘radiobutton’, undefined, “Radio Button Two”);
radio2.value = false;
var radio3 = radioButtonsGroup.add(‘radiobutton’, undefined, “This Radio Button Shows More Stuff.”);
radio3.value = false;
//– End group for radio buttons –////– Everything within the “hiddenTextGroup” will be hidden when the panel is first drawn –//
var hiddenTextGroup = myDialog.add(‘group {orientation: “column”, alignChildren: “left”, alignment: “left”}’)
hiddenTextGroup.size = [0,0];
hiddenTextGroup.hide();var revealedText = hiddenTextGroup.add(‘statictext’, undefined, “Some static text”);
revealedText.preferredSize.width = 500;var myEditText = hiddenTextGroup.add(‘edittext’, undefined, undefined);
myEditText.preferredSize.width = 500;
//– End of “hiddenTextGroup” –////– A group for my buttons in the panel –//
var buttonGroup = myDialog.add(‘group’);
buttonGroup.alignment = [‘right’,’bottom’];
buttonGroup.margins[1] = 15;//– My Buttons
var cancelButton = buttonGroup.add(‘button’, undefined, “Close Panel”,{name: “Close Panel”});
var proceedButton = buttonGroup.add(‘button’, undefined, “Submit This Stuff”,{name: “proceedButton”});//– Event listener – activated with the radio button is clicked. –//
radio3.onClick = function(){
hiddenTextGroup.size = [500,100];
hiddenTextGroup.show();
myDialog.layout.layout (true);
}proceedButton.onClick = function() {
alert(“You clicked Proceed.”);
myDialog.close(1); //–close the dialog, return 1
}cancelButton.onClick = function() {
myDialog.close(2); //–close the dialog, return 2
}var dialogResult = myDialog.show();
if(dialogResult == 1){
//– Do some stuff because the proceed button was clicked
}else if (dialogResult== 2){
exit(0);
}//————— END SCRIPT —————//
December 29, 2019 at 7:05 am in reply to: How to make a click radiobutton eventListener work? #14323369Jeremy Howard
ParticipantHello Jose,
I’m on my mobile at the moment so I can’t test this but have you tried using “onChange”?
Something like: custom_radiobutton.onChange = function(){
//put actions here
}If this doesn’t solve your problem then I’ll take a closer look when I get back to my computer.
-
AuthorPosts
