Script for Transfering paths between documents?.. help

Dear all,
I can see that this question has been asked a few times, but the answers don't work for me.
All I need to do is to make a script (I am new to this).. which automates the transfer of the paths to the document with the same file name.
E.g.: File 1: Original tif or .psd file with file name fridaystudios64 which resides in a folder called tif. File 2: Jpg image which has been sent away for clipping and has come back. It also has the same filename fridaystudio64 but resides in a folder called Paths..
The file name is always different.. and there are over 10 for each batch.
The file size of these documents is exactly the same, but the colour space is different.. (the tif or .psd is Adobe RGB and the jpg is sRGB).
The file needs to automate by recognising the other file with the same name, opening up, and copying it over, and then just saving it.
I could do this manually, but it takes about 3 minutes a day, and sometimes longer, and thought if it's possible then it would be cool.
Can anyone please help with this, or already have a script they are generous enough to give me..
Kind regards,

Does this help?
// select folder, if folder »paths« exists beside that folder transfer paths from jpgs to psds, tifs from first folder;
// 2014, use it at your own risk;
#target photoshop
// dialog for folder-selection;
var theFolder1 = Folder.selectDialog ("select folder 1");
var theFolder2 = Folder(theFolder1.parent+"/Paths");
//var theFolder2 = Folder.selectDialog ("select folder 2");
if (theFolder1 && theFolder1) {
var theFiles1 = theFolder1.getFiles(getSomeFiles);
// work through folders;
for (var m = 0; m < theFiles1.length; m++) {
          var theFile = theFiles1[m];
// if corresponding jpg exists;
          var thePath = theFolder2+"/"+theFile.name.replace(/\.\D{3}$/i, ".jpg");
          if (File(thePath).exists == true) {
// open jpg;
                    var theFile2 = app.open(File(thePath));
// if jpg has path/s;
                    if (theFile2.pathItems.length > 0) {
                              var thePaths = new Array;
                              var theNames = new Array;
// collect paths;
                              for (var n = 0; n < theFile2.pathItems.length; n++) {
                                        var thisPath = theFile2.pathItems[n];
                                        theNames.push (thisPath.name);
                                        thePaths.push (collectPathInfoFromDesc2012(theFile2, thisPath));
                              theFile2.close(SaveOptions.DONOTSAVECHANGES)
// open other file;
                              var theFile = app.open(theFile);
// create paths;
                              for (var o = 0; o < thePaths.length; o++) {
                                        var theName = theNames[o];
// if path of that name exists;
                                        var theCheck = false
                                        while (theCheck == false) {
                                                  try {
                                                            theFile.pathItems.getByName(theName);
                                                            theName = theName + "_"
                                                  catch (e) {theCheck = true};
                                        createPath2012(thePaths[o], theName)
// close and save;
                              theFile.close(SaveOptions.SAVECHANGES);
                    else {theFile2.close(SaveOptions.DONOTSAVECHANGES)}
////// get psds and tifs from files //////
function getSomeFiles (theFile) {
    if (theFile.name.match(/\.(tif|psd)$/i)) {
        return true
////// get document’s //////
function getDocumentsID () {
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var docDesc = executeActionGet(ref);
var docID = docDesc.getInteger(stringIDToTypeID("documentID"));
var docIndex = docDesc.getInteger(stringIDToTypeID("itemIndex"));
return [docID, docIndex]
////// collect path info from actiondescriptor, smooth added //////
function collectPathInfoFromDesc2012 (myDocument, thePath) {
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.POINTS;
// based of functions from xbytor’s stdlib;
var ref = new ActionReference();
for (var l = 0; l < myDocument.pathItems.length; l++) {
          var thisPath = myDocument.pathItems[l];
          if (thisPath == thePath && thisPath.name == "Work Path") {
                    ref.putProperty(cTID("Path"), cTID("WrPt"));
          if (thisPath == thePath && thisPath.name != "Work Path" && thisPath.kind != PathKind.VECTORMASK) {
                    ref.putIndex(cTID("Path"), l + 1);
          if (thisPath == thePath && thisPath.kind == PathKind.VECTORMASK) {
        var idPath = charIDToTypeID( "Path" );
        var idPath = charIDToTypeID( "Path" );
        var idvectorMask = stringIDToTypeID( "vectorMask" );
        ref.putEnumerated( idPath, idPath, idvectorMask );
var desc = app.executeActionGet(ref);
var pname = desc.getString(cTID('PthN'));
// create new array;
var theArray = new Array;
var pathComponents = desc.getObjectValue(cTID("PthC")).getList(sTID('pathComponents'));
// for subpathitems;
for (var m = 0; m < pathComponents.count; m++) {
          var listKey = pathComponents.getObjectValue(m).getList(sTID("subpathListKey"));
          var operation1 = pathComponents.getObjectValue(m).getEnumerationValue(sTID("shapeOperation"));
          switch (operation1) {
                    case 1097098272:
                    var operation = 1097098272 //cTID('Add ');
                    break;
                    case 1398961266:
                    var operation = 1398961266 //cTID('Sbtr');
                    break;
                    case 1231975538:
                    var operation = 1231975538 //cTID('Intr');
                    break;
                    default:
//                    case 1102:
                    var operation = sTID('xor') //ShapeOperation.SHAPEXOR;
                    break;
// for subpathitem’s count;
          for (var n = 0; n < listKey.count; n++) {
                    theArray.push(new Array);
                    var points = listKey.getObjectValue(n).getList(sTID('points'));
                    try {var closed = listKey.getObjectValue(n).getBoolean(sTID("closedSubpath"))}
                    catch (e) {var closed = false};
// for subpathitem’s segment’s number of points;
                    for (var o = 0; o < points.count; o++) {
                              var anchorObj = points.getObjectValue(o).getObjectValue(sTID("anchor"));
                              var anchor = [anchorObj.getUnitDoubleValue(sTID('horizontal')), anchorObj.getUnitDoubleValue(sTID('vertical'))];
                              var thisPoint = [anchor];
                              try {
                                        var left = points.getObjectValue(o).getObjectValue(cTID("Fwd "));
                                        var leftDirection = [left.getUnitDoubleValue(sTID('horizontal')), left.getUnitDoubleValue(sTID('vertical'))];
                                        thisPoint.push(leftDirection)
                              catch (e) {
                                        thisPoint.push(anchor)
                              try {
                                        var right = points.getObjectValue(o).getObjectValue(cTID("Bwd "));
                                        var rightDirection = [right.getUnitDoubleValue(sTID('horizontal')), right.getUnitDoubleValue(sTID('vertical'))];
                                        thisPoint.push(rightDirection)
                              catch (e) {
                                        thisPoint.push(anchor)
                              try {
                                        var smoothOr = points.getObjectValue(o).getBoolean(cTID("Smoo"));
                                        thisPoint.push(smoothOr)
                              catch (e) {thisPoint.push(false)};
                              theArray[theArray.length - 1].push(thisPoint);
                    theArray[theArray.length - 1].push(closed);
                    theArray[theArray.length - 1].push(operation);
// by xbytor, thanks to him;
function cTID (s) { return cTID[s] || cTID[s] = app.charIDToTypeID(s); };
function sTID (s) { return sTID[s] || sTID[s] = app.stringIDToTypeID(s); };
// reset;
app.preferences.rulerUnits = originalRulerUnits;
return theArray;
////// create a path from collectPathInfoFromDesc2012-array //////
function createPath2012(theArray, thePathsName) {
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.POINTS;
// thanks to xbytor;
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
    var desc1 = new ActionDescriptor();
    var ref1 = new ActionReference();
    ref1.putProperty(cTID('Path'), cTID('WrPt'));
    desc1.putReference(sTID('null'), ref1);
    var list1 = new ActionList();
for (var m = 0; m < theArray.length; m++) {
          var thisSubPath = theArray[m];
    var desc2 = new ActionDescriptor();
    desc2.putEnumerated(sTID('shapeOperation'), sTID('shapeOperation'), thisSubPath[thisSubPath.length - 1]);
    var list2 = new ActionList();
    var desc3 = new ActionDescriptor();
    desc3.putBoolean(cTID('Clsp'), thisSubPath[thisSubPath.length - 2]);
    var list3 = new ActionList();
for (var n = 0; n < thisSubPath.length - 2; n++) {
          var thisPoint = thisSubPath[n];
    var desc4 = new ActionDescriptor();
    var desc5 = new ActionDescriptor();
    desc5.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[0][0]);
    desc5.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[0][1]);
    desc4.putObject(cTID('Anch'), cTID('Pnt '), desc5);
    var desc6 = new ActionDescriptor();
    desc6.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[1][0]);
    desc6.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[1][1]);
    desc4.putObject(cTID('Fwd '), cTID('Pnt '), desc6);
    var desc7 = new ActionDescriptor();
    desc7.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[2][0]);
    desc7.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[2][1]);
    desc4.putObject(cTID('Bwd '), cTID('Pnt '), desc7);
    desc4.putBoolean(cTID('Smoo'), thisPoint[3]);
    list3.putObject(cTID('Pthp'), desc4);
    desc3.putList(cTID('Pts '), list3);
    list2.putObject(cTID('Sbpl'), desc3);
    desc2.putList(cTID('SbpL'), list2);
    list1.putObject(cTID('PaCm'), desc2);
    desc1.putList(cTID('T   '), list1);
    executeAction(cTID('setd'), desc1, DialogModes.NO);
if (hasVectorMask() == false) {
var myPathItem = app.activeDocument.pathItems[app.activeDocument.pathItems.length - 1];
else {
var myPathItem = app.activeDocument.pathItems[app.activeDocument.pathItems.length - 2];
myPathItem.name = thePathsName;
app.preferences.rulerUnits = originalRulerUnits;
return myPathItem
// from »Flatten All Masks.jsx« by jeffrey tranberry;
// Function: hasVectorMask
// Usage: see if there is a vector layer mask
// Input: <none> Must have an open document
// Return: true if there is a vector mask
function hasVectorMask() {
          var hasVectorMask = false;
          try {
                    var ref = new ActionReference();
                    var keyVectorMaskEnabled = app.stringIDToTypeID( 'vectorMask' );
                    var keyKind = app.charIDToTypeID( 'Knd ' );
                    ref.putEnumerated( app.charIDToTypeID( 'Path' ), app.charIDToTypeID( 'Ordn' ), keyVectorMaskEnabled );
                    var desc = executeActionGet( ref );
                    if ( desc.hasKey( keyKind ) ) {
                              var kindValue = desc.getEnumerationValue( keyKind );
                              if (kindValue == keyVectorMaskEnabled) {
                                        hasVectorMask = true;
          }catch(e) {
                    hasVectorMask = false;
          return hasVectorMask;

Similar Messages

  • Network LOD support for All Paths between 2 nodes

    In the in-memory Network API, there is a method NetworkManager.allPaths. This method returns available paths between 2 nodes with possible constraints. I am looking for a similar method in the LOD NetworkAnalyst class and am not finding it. Is there something similar?
    Or, here is what I want to do, and maybe there is a better way to do it. I am using NDM to data-mine our roadway inventory. Its a big network, whole state of Ohio, all roads--both local and state. One of the things I am trying to identify are what we call co-located routes. These are routes that have multiple names, for example, the ohio turnpike is both Interstate 80 and 90 on the same bed of road. In our line work, where these routes are co-located, we would only have a record for 80. The portion of 90 that we would have would be only in the case where it is NOT co-located with 80; in other words, 90 has a gap where it is co-located with 80. This is true for all our roads. In this case, we call 80 the primary, and 90 the secondary. We can have infinite secondaries (our worst case scenario is 6 routes overlapping). My situation in many cases, is I know that a route becomes secondary, I know how long the secondary section is, but I don't know what the primary is, so I want to discover it.
    Given these assumptions, I should be able to ask for all paths between 2 nodes that exactly match a cost (the overall length of the overlap). This should be simple with NDM. I provide a begin node, an end node, and a target cost, possible some traversal constraints, and it returns me the candidate paths. I thought that NetworkAnalyst.withinCost would do this, but as I discovered from the Stored Procedure docs, it returns the shortest path within the given less than or equal to the given cost--not necessarily the path I am looking for.
    Any advice? FYI, I am using Oracle 11GR2.
    Thanks, Tom

    So what I have come up with so far, is that the NetworkAnalyst trace methods provide this type of functionality. For example, with traceOut, I provide a start node, distance and some traversal constraints, and it returns me all paths less than or equal to the specified distance. What was throwing me a little with this method was the application of the LODGoalNode. I was thinking that the goal node would allow me to specify a particular node to be a requirement for the entire path such that a resulting path would have my start node, and end on a particular goal node with links in between. That IS NOT how it works. The LODGoalNode.isGoal is tested for EACH link that is part of a potential path, and only if this method returns true, is it added to the resulting path list.
    In my case, if I specified a start node and implemented the LODGoalNode.isGoal method such that it tested the provided end node for equality to my target node, the result would be that only links containing that specific goal node in the link. Anyway, so in my implementation, I leave the goalNode of the traceOut method null.
    So I have a new question. Is there a way to test when a path has been found, and then apply some constraints on it (PathConstraint)? This would be useful in cases where you get many paths returned to you, but in addition to a maximum distance constraint, you also want to apply for example a minimum distance on the resulting path, or that this is only a valid path if it ends on a particular node. Maybe there is a way to do this, and I haven't figured it out yet. The old AnalysisInfo class used to have a way to query the current path links and nodes, that would be useful in the LODAnalysisInfo class to help accomplish this perhaps? This feature isn't critical, because I can filter the list of paths returned from traceOut on my own after they are returned, but it would add some efficiency, especially when a large amount of paths are returned.
    Thanks, Tom

  • 'flatten.txt' script for Acrobat 9 Flatten Document Menu Item

    Hello,
    I was following the steps in this blog (Add a Flatten Document Menu Item to Acrobat) to add a Flatten Document menu item in Acrobat 9, and the link the 'flatten.txt' script is dead.  The page directs you to this link:  https://acrobat.com/?d=KlVeiP4I1SXCRcTpRh-2wQ, which is just the Adobe Document Cloud webpage.  Does anybody have a copy of the 'flatten.txt' script?  I've used this before on my last computer, but since re-installing I have not been able to add this feature to Acrobat 9.  Any help is appreciated.  Thanks

    You need to contact Rick Borstein to update the link for the missing file. See his blog entry In case files are missing. Adobe has closed Acrobat.com and started a new service for Acrobat DC.
    There are any number of scripts to provide add this feature with some options.
    PDFScripting free automation tools
    Selective Flattener by UVSAR, you may need to research where the user scripts are stored in the newer versions of Acrobat.
    In the future, you should either copy your custom scripts to a remote location for restoration or keep a copy of the scripts and documentation on removable data or a networked location as a backup.

  • Trying to allocate for printer grip on document, help plz!

    Okay, hey, new to the board here, excuse me if the format of my question is confusing :S
    Im using Illustrator to create a thank you note card that has to fit within exact dimensions on an 8.5'' X 11 '' sheet of paper that is divided into quarters. the bottom quarters on a horizontal plane have an embossed border set 5/8ths of an inch in from the sides (of the quarter page)
    I have my design layed out on an 8.5'' X 11'' document, i ran a test print through the printer and realized i hadnt compensated for the printer's grip. this was on ordinary stock paper. After printing, I noticed that the borders along the outside edges of the whole document (Not on the inside along the quartered sections borders) were pushed in an extra distance, say an extra 1/4'' inwards.
    When I do print the actual document, I will be running the paper through the bypass (its cardstock and i dont want it to curl).
    Now heres my question...
    What should I do to compensate for this?
    Should I make a document that has the distance of the printer grip subtracted from it's dimensions (will that even work)? would compensating on the dimensions of my already existing 8.5''X11'' document solve this?
    am i entirely misguided? is there a solution built into adobe illustrator or a printer to solve this? maybe someone could point me to a tutorial? I searched myself and didnt find what the info I required maybe someone has a solution of their own?
    please help! thank you in advance!
    also, if anyone looking into this needs clarification, lemme know !

    The way to cheat is to set the grip end to be the inner surface of the card and then keep the text back far enough to not get cut off.  Something like this

  • Script for Indesign CS6 - Export Document to preset PDF

    Does anyone know how to do this please?

    Do what? You can't export a document to a preset. You can use a preset to export a document, is that what you mean?
    Check the ESTK object model under Document. Look at the exportFile() method.
    Dave

  • Wait for event - contradiction between SAP help and SDN?

    Hello,
    I try to employ an advice from SDN for "How can I 'advance in dialog' with asynchronous tasks?", which says "use a synchronous task instead e.g. by using a wait for event in a separate branch". But when I define step Wait for event, I can read on the control tab "You should not use this step type in a fork to wait for an event that is triggered in another branch of the same fork."
    In my understanding these two advices are in contradiction - am I right? Why we "should not use this step type in a fork to wait for an event that is triggered in another branch of the same fork"?
    Thanks for explanation.
    Miroslav

    Hi..
    Wait for Event you can use in the Fork, but each branch should triggered separately.
    E.g. If I Claim a Travel Expense a workflow will trigger from the Event  "RequestCreated", then after few hours i want to change the Travel expense and re-submit again, now "Changed" event and "RequestCreated" event will Occur. At this time the Old Workflow has to stop and new workflow has to trigger.
    So, here a fork has to be place, in one branch the normal approval steps and in another branch wait for "Changed" event has to be place.
    So now the previous workflow will closed and new workflow will trigger using the new values.
    Regards,
    Surjith

  • Python script for Fabric Path Vlan audit?

    Has anyone written any kind of scripts/automation to audit a NXOS FP domain and ensure CU vlans are properly configured?

    Have you tried looking on Github? You might a Python script that you can re-use.

  • How do I create an automator variable for a path that includes a date?

    I like to use Image Capture to scan documents into a hierarchy of folders under my ~/Documents directory that are organized by year and document type.  For example, I have
    ~/Documents/archives/2011
         /Misc
         /Utilities
    and
    ~/Documents/archives/2012
         /Misc
         /Utilities
    for archiving miscellaneous docs and utilities bills. Now, switching folders in Image Capture is annoying so I want to use the Automator support built into that app to direct the scanned images to ~/Documents/archives/<Current Year>/Misc or ~/Documents/archives/<Current Year>/Utilities.  I was able to do this with separate Automator workflows, each with a hard-coded path to the destination folder.  For example,
    What I would like to do is use an Automator variable to dynamically determine ~/Documents/archives/<Current Year>/Misc.  I see variables for Home, Documents, and Current Year.   However, when I try to create a new path variable it only lets me choose a full path to a Finder folder.  How do I combine Documents and Current Year variables with the "archives" and "Misc" folder names to create a new path variable?

    Well now, you went and made me learn something today.  In the Variables Library, under Utilities, is a variable named AppleScript.  You can put a small script into this that evaluates to your path, for example:
    ((((path to documents folder) as text) & "archives:" & (year of (current date)) as text) & ":Utilities") as alias
    If the script evaluates to a proper path, it can be used wherever any other path can - you can experiment by looking at the results of a Get Value of Variable action.

  • Error while transferring Forwarding settlement document to ERP Billing

    Hi Experts,
    My forwarding settlement document is consistent.
    All the basic customizing in SAP ERP, TM has been completed as follows, but getting error while transferring forwarding settlement document to ERP billing (Ref. 1st screenshot).
    I am using SAVE AND TRANSFER button to send the document to ERP, also same error is displaying while using PREVIEW INVOICE button (Ref.2nd screenshot)
    Please suggest if I missed anything to send forwarding settlement document to ERP.
    Customizing settings for transferring Forwarding settlement document to SAP ERP.
    1. In SD Billing all condition types has been maintained, pricing procedure determination configured.
    2. In SAP ERP SD condition types mapped to TM charge types using following path.
    Integration with other sap components - Transportation management - Invoice integration - Billing - Definition for transportation charge elements - Define charge types.
    3. Assignment of charge types in ERPSD
    4. Define charge category, subcategory codes
    5. Mapped ERP SD, TM sales organization with logical TM system, sales area, Order type, Billing type, Pricing procedure
    6. Output types determination configured for ERP Billing in SD

    Dear Serhat,
    I don't think this is an RFC problem or an error. But you wrote:
    When I checked why its value is 'X', I saw that if the RFC destination and the current system are the same, then lv_no_commit = 'X', (means if the R3 and the GTS are in the same server, same client.)
    It is impossible to have GTS and R/3 on the same system and same client. At least the client should be different. So try to check why the call is performed like that.
    Balazs

  • Secure login script for my site

    I can not seem to find a idiot proof login script for my
    site, can someone help out PLEASE i'm going in sain!!!
    can not be be that hard or it is?
    thanks for any help.

    Well if you want something really easy to use, and are
    willing to lay down a bit of dough, check out this DW extension.
    http://www.interaktonline.com/Products/Dreamweaver-Extensions/MXUserLogin/Overview/
    I have it, and it's pretty simple to use.

  • I am trying to download the latest iTunes update.  Keep getting error message stating "The folder path 'My Documents' contains an invalid character".  I can't uninstall iTunes for the same reason.  HELP!

    I am trying to download the latest iTunes update; keep getting error message that says "The folder path 'My Documents' contains an invalid character".  This also happens when I try to uninstall iTunes.  HELP!

    OK, never mind!  I saw another question on the right side that addressed the problem, and it worked perfectly!  Went to Major Geeks' page, downloaded the Windows Installer Cleanup Utility, and was able to reinstall the updated version of iTunes!  This community is super!

  • Script for combining multiple documents?

    hi there,
    well I think there's been a lot of discussion going towards this topic. My concerns aren't quite lining up with the topics. We using a script for placing images, and instead of going document to document...I would like to combine all the indd documents...there's usually at least 24...and to import NOT as pdf's, just as individual pages within the one document...insert my images using the other script...and then later choosing to re-export the pages as individuals. With ascending order of page numbers in the correct sequence they were brought in as.
    thanks for the help.

    -Printing by folder only helps when I need to run one copy of the files, typically I need to print multiple copies or save them for future printing.  Also I have had errors printing via that method before because it will sometimes overload the printer queue.
    -It would be great if clients always provided print ready documents, but that is usually not the case and I have to correct it which is why I am here asking how to do this.
    And if you can not do that then you need to insert a blank page into the files with an odd number of pages.
    Right.  That is what I am looking for; something to automate inserting a blank page into files that have an odd number of pages WITHOUT knowing the documents page counts before hand and WITHOUT having to manually insert blank pages.

  • Script for 'Check Links Before Opening Document' preference

    I'm trying to find the VB script for changing the "Check Links Before Opening Document" checkbox on the File Handling panel in the Preferences dialog? I haven't found any documentation referring to the Links items on that panel.
    Bob

    Thanks for the info.
    Was there a document you pulled this from?
    I have an old document from CS2 days that is invaluable for providing a detailed list of available script methods and properties. Obviously things that have been added in subsequent InDesign releases aren't in this document. Later InDesign CS releases offer script SDKs that contain helpful sample scripts but I don't find a detailed summary similar to one from CS2. Have I just not found them? Or how does one find the script method/property for things not contained in the sample scripts?

  • I am new to scripting & I need Script for Document color mode

    Hi,
    Please help me to create a script which should find the Document color mode. I am new to scripting. And please let me know how to use the same.
    Balaji

    Are you using the Extendscript Toolkit Editor (ESTK)? In the Help menu you can find all the properties for Document that can be queried/changed.
    (Personally, I don't use ESTK, because I really really hate it. But I don't want to miss the Help, so I made my own version. I have Illustrator CS4, and it's possible your version doesn't have this, but under Document I find:
    documentColorSpace
    DocumentColorSpace:
    DocumentColorSpace.RGB
    DocumentColorSpace.CMYK
    readonly
    The color space used for the document.
    For the how-to-use I glady refer you to Adobe's own Starting With Scripting guides.)

  • Script for Document Footnote options change before first footnote above space.

    Hi hope u r all fine,
    Please help for this. I want to change the space in Document footnote option.
    That is Minimum space before first footnote = "12 pt"; and Rule above of First Footnote in Column should be Rule off.
    I need script for this.

    @hasvi – look up the properties and methods here:
    Jongware
    InDesign JavaScript Reference Guide
    http://www.jongware.com/idjshelp.html
    I recommend the chm files listed there for easy searchability.
    There is also a HTML version and a online version in HTML.
    Properties like footnoteFirstBaselineOffset, footnoteMinimumFirstBaselineOffset, ruleOn and ruleOffset with their possible values are documented here:
    http://jongware.mit.edu/idcs6js/pc_FootnoteOption.html
    To set the properties and their values you have to address the document.footnoteOptions:
    var myDoc = app.documents[0];
    myDoc.footnoteOptions.properties = {
        footnoteFirstBaselineOffset : FootnoteFirstBaseline.X_HEIGHT,
        footnoteMinimumFirstBaselineOffset : "12 pt",
        ruleOn : false
    Uwe

Maybe you are looking for