Scripts for making hyperlinks - my approach

Today I posted a new article with a couple of scripts and sample documents. Hope it will come in handy to somebody on the forum. I spent a lot of time on elaborating an approach that would work well for me and now I would like to share it with others. Feel free to give me your feedback here in this thread. If it attracts interest, I'll post more scripts.
Regards,
Kasyan

Hi Kasyan,
Thanks for sharing this tool.

Similar Messages

  • Script for making random thumbnails from single image

    Hi all,
    I need something like a hundred different thumbnails from each image in a series of images, that is, hundred random sections of the same image, saved in a folder as jpg,  and i was hoping that i could find a script for this.
    What the script has to do is:
    select the size of the crop (this would also be the dimensions of the thumbnail saved)
    rotate crop selection in a random orientation and place the crop randomly on the canvas
    save the image as a jpg in a folder
    return to original image,
    repeat process x times before quitting script.
    I dont think this should be to difficult to make a script for, but unfortunately i don´t know how to code.
    Is there anybody that could help me with this?
    This would save me a lot of time!

    You can give this a try:
    // create copies with pseudo random clipped and rotated parts of image;
    // thanks to xbytor;
    // 2012, use at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    var originalRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.POINTS;
    // set name for folder to save jpgs to;
    var folderName = "rotatedJpgs";
    // set number of jpgs;
    var theNumber = 100;
    // width and height;
    var theWidth = 500;
    var theHeight = 500;
    // calculate some values;
    var theDiagonal = Math.sqrt ((theWidth * theWidth) + (theHeight * theHeight));
    var diagAngle = angleFromRadians(Math.acos((theWidth) / (theDiagonal)));
    // get file name and path;
    var myDocument = app.activeDocument;
    var docName = myDocument.name;
    try {
              var basename = docName.match(/(.*)\.[^\.]+$/)[1];
              var docPath = myDocument.path;
    catch (e) {
              basename = docName;
              var docPath = "~/Desktop";
    // create folder if it does not exist yet;
    if (Folder(docPath + "/" + folderName).exists == true) {
              var docPath = docPath + "/" + folderName;
    else {
              var theFolder = Folder(docPath + "/" + folderName).create();
              var docPath = docPath + "/" + folderName;
    // document dimensions;
    var docWidth = myDocument.width;
    var docHeight = myDocument.height;
    // jpg options;
    var jpegOptions = new JPEGSaveOptions();
    jpegOptions.quality = 10;
    jpegOptions.embedColorProfile = true;
    jpegOptions.matte = MatteType.NONE;
    // duplicate image;
    var theCopy = myDocument.duplicate (theCopy, true);
    var origResolution = theCopy.resolution;
    theCopy.resizeImage(undefined, undefined, 72, ResampleMethod.NONE);
    var docHalfWidth = theCopy.width / 2;
    var docHalfHeight = theCopy.height / 2;
    var theLayer = smartify2010(theCopy.layers[0]);
    theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
    var theHistoryState = theCopy.activeHistoryState;
    // do the variations;
    for (var m = 0; m < theNumber; m++) {
    var theAngle = Math.random() * 360;
    theLayer.rotate (theAngle, AnchorPosition.MIDDLECENTER);
    //theCopy.resizeCanvas (theWidth, theHeight, AnchorPosition.MIDDLECENTER);
    // get tolerance offset;
    var theHor1 = Math.abs(Math.cos(radiansOf(theAngle + diagAngle)) * theDiagonal / 2);
    var theVer1 = Math.abs(Math.sin(radiansOf(theAngle + diagAngle)) * theDiagonal/ 2);
    var theHor2 = Math.abs(Math.cos(radiansOf(theAngle - diagAngle)) * theDiagonal / 2);
    var theVer2 = Math.abs(Math.sin(radiansOf(theAngle - diagAngle)) * theDiagonal / -2);
    // calculate max offset for unrotated overall rectangle;
    var thisHalfWidth = docHalfWidth - Math.max(theHor1, theHor2);
    var thisHalfHeight = docHalfHeight - Math.max(theVer1, theVer2);
    // calculate random offset for unrotated overall rectangle;
    var randomX = thisHalfWidth * (Math.random() - 0.5) * 2;
    var randomY = thisHalfHeight * (Math.random() - 0.5) * 2;
    var aDiag = Math.sqrt (randomX * randomX + randomY * randomY);
    var anAngle = angleFromRadians(Math.asin((randomY) / (aDiag))) + theAngle;
    anAngle = anAngle + Math.floor(Math.random() * 2) * 180;
    // calculate  offset for rotated overall rectangle;
    var offsetX = Math.cos(radiansOf(anAngle)) * aDiag;
    var offsetY = Math.sin(radiansOf(anAngle)) * aDiag;
    //alert (theAngle+"\n\n"+offsetX +"\n"+ offsetY+"\n\n"+ thisHalfWidth+"\n"+thisHalfHeight);
    theLayer.translate(offsetX, offsetY);
    theCopy.resizeImage(undefined, undefined, origResolution, ResampleMethod.NONE);
    theCopy.saveAs((new File(docPath+"/"+basename+"_"+bufferNumberWithZeros(m+1, 3)+".jpg")),jpegOptions,true);
    theCopy.activeHistoryState = theHistoryState;
    // clean up;
    theCopy.close(SaveOptions.DONOTSAVECHANGES);
    app.preferences.rulerUnits = originalRulerUnits;
    ////// radians //////
    function radiansOf (theAngle) {
              return theAngle * Math.PI / 180
    ////// radians //////
    function angleFromRadians (theRad) {
              return theRad / Math.PI * 180
    ////// buffer number with zeros //////
    function bufferNumberWithZeros (number, places) {
              var theNumberString = String(number);
              for (var o = 0; o < (places - String(number).length); o++) {
                        theNumberString = String("0" + theNumberString)
              return theNumberString
    ////// function to smartify if not //////
    function smartify2010 (theLayer) {
    // make layers smart objects if they are not already;
              app.activeDocument.activeLayer = theLayer;
    // process pixel-layers and groups;
          if (theLayer.kind == "LayerKind.GRADIENTFILL" || theLayer.kind == "LayerKind.LAYER3D" || theLayer.kind == "LayerKind.NORMAL" ||
          theLayer.kind == "LayerKind.PATTERNFILL" || theLayer.kind == "LayerKind.SOLIDFILL" ||
          theLayer.kind == "LayerKind.TEXT" || theLayer.kind == "LayerKind.VIDEO" || theLayer.typename == "LayerSet") {
                        var id557 = charIDToTypeID( "slct" );
                        var desc108 = new ActionDescriptor();
                        var id558 = charIDToTypeID( "null" );
                        var ref77 = new ActionReference();
                        var id559 = charIDToTypeID( "Mn  " );
                        var id560 = charIDToTypeID( "MnIt" );
                        var id561 = stringIDToTypeID( "newPlacedLayer" );
                        ref77.putEnumerated( id559, id560, id561 );
                        desc108.putReference( id558, ref77 );
                        executeAction( id557, desc108, DialogModes.NO )
                        return app.activeDocument.activeLayer
              if (theLayer.kind == LayerKind.SMARTOBJECT || theLayer.kind == "LayerKind.VIDEO") {return theLayer};
    ////// get an angle, 3:00 being 0˚, 6:00 90˚, etc. //////
    function getAngle (pointOne, pointTwo) {
    // calculate the triangle sides;
              var width = pointTwo[0] - pointOne[0];
              var height = pointTwo[1] - pointOne[1];
              var sideC = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
    // calculate the angles;
              if (width+width > width) {theAngle = Math.asin(height / sideC) * 360 / 2 / Math.PI}
              else {theAngle = 180 - (Math.asin(height / sideC) * 360 / 2 / Math.PI)};
              if (theAngle < 0) {theAngle = (360 + theAngle)};
              return theAngle

  • Action script for making symbol hyperlink to open I'm same window?

     

    on (rollOver) {
         getURL("http://www.google.com");
    Ok so i have this and it seems to be the consensus on how to do it...
    Just open actionscript
    and type this
    unfortunately
    when i click on the symbol (was a jpg that i converted to a button)
    and open action window
    and try to type that, it tells me i can't do anything to the selection...
    Basically I want these moving symbols and symbols that fade in to be mapped to open up to (graphic design, retouching etc... pages of my site)
    This is all for a spash page i'm attempting to make

  • Script for making an object the artboard size.

    I am looking for some help on trying to make an object the exact size of the artboard.  This is something I do on a daily basis for several different reasons and it would be very helpful if this can happen automatically for whatever size the artboard may be.  As I understand it the only way is with a script but I have no experience with making illustrator scripts, im definately no programmer.  I have set up quickkeys in the past to copy from the artboard inputs when you are on the artboard tool but these round to the nearest .01 and this is not accurate enough for what I am working with.  Also if I do this with multiple pages open illustrator is very slow to respond to the artboard tool.  If anyone has any idea where to start or has seen other such scripts I would greatly appreciate it.  Thank you.
    Below is a script that I saw on here that I believe may contain what I need but now knowing programming I have no idea where to start on editing.  All I need is the part where an object is placed on the artboard that is the exact same size as the artboard.  If anyone can advise on editing I would greatly apprecaite it.
    #target illustrator
    function main() {
         if (app.documents.length == 0) {
              alert('Open a document before running this script');
              return; // Stop script here no doc open…
         } else {
              var docRef = app.activeDocument;
              with (docRef) {
                   if (selection.length == 0) {
                        alert('No items are selected…');
                        return; // Stop script here with no selection…
                   if (selection.length > 1) {
                        alert('Too many items are selected…');
                        return; // Stop script here with selection Array…
                   } else {                   
                        var selVB = selection[0].visibleBounds;
                        var rectTop = selVB[1] + 36;
                        var rectLeft = selVB[0] - 36;
                        var rectWidth = (selVB[2] - selVB[0]) + 72;
                        var rectHeight = (selVB[1] - selVB[3]) + 72;              
                        selection[0].parent.name = 'CC';
                        selection[0].filled = false;
                        selection[0].stroked = true;
                        var ccColor = cmykColor(0, 100, 0, 0);              
                        var ccCol = spots.add()
                        ccCol.name = 'CC';
                        ccCol.color = ccColor;
                        ccCol.tint = 100;
                        ccCol.colorType = ColorModel.SPOT;
                        var cc = new SpotColor();
                        cc.spot = ccCol;                   
                        selection[0].strokeColor = cc;
                        selection[0].strokeWidth = 1;                   
                        var tcLayer = layers.add();
                        tcLayer.name = 'TC';
                        var padBox = pathItems.rectangle(rectTop, rectLeft, rectWidth, rectHeight, false);
                        padBox.stroked = false;
                        padBox.filled = true;
                        var tcColor = cmykColor(0, 100, 90, 0);         
                        var tcCol = spots.add()
                        tcCol.name = 'TC';
                        tcCol.color = tcColor;
                        tcCol.tint = 100;
                        tcCol.colorType = ColorModel.SPOT;
                        var tc = new SpotColor();
                        tc.spot = tcCol;
                        padBox.fillColor = tc;    
                        padBox.move(docRef, ElementPlacement.PLACEATEND);
                        artboards[0].artboardRect = (padBox.visibleBounds);
                        redraw();
                        rectWidth = (rectWidth-72)/72;
                        rectWidth = roundToDP(rectWidth,1);
                        rectHeight = (rectHeight-72)/72;
                        rectHeight = roundToDP(rectHeight,1);
                        var textString = rectWidth + ' x ' + rectHeight;
                        prompt('Copy Me', textString);
    main();
    function roundToDP(nbr, dP) {
         dpNbr = Math.round(nbr*Math.pow(10,dP))/Math.pow(10,dP);
         return dpNbr;
    function cmykColor(c, m, y, k) {
         var newCMYK = new CMYKColor();
         newCMYK.cyan = c;
         newCMYK.magenta = m;
         newCMYK.yellow = y;
         newCMYK.black = k;
         return newCMYK;

    Thanks to CarlosCanto for the original script, it was very a very helpful starting point to optimize one of our workflows. We customized it a bit to maintain the aspect ratio (just takes the greater of the width / height and scales proportionally to the artboard size), and also center up the object in the middle of the artboard once scaling is complete. I hope it is helpful to someone:
    #target Illustrator
    //  script.name = fitObjectToArtboardBounds.jsx;
    //  script.description = resizes selected object to fit exactly to Active Artboard Bounds;
    //  script.required = select ONE object before running; CS4 & CS5 Only.
    //  script.parent = carlos canto // 01/25/12;
    //  script.elegant = false;
    var idoc = app.activeDocument;
    selec = idoc.selection;
    if (selec.length==1)
            // get document bounds
            var docw = idoc.width;
            var doch = idoc.height;
            var activeAB = idoc.artboards[idoc.artboards.getActiveArtboardIndex()]; // get active AB
            docLeft = activeAB.artboardRect[0];
            docTop = activeAB.artboardRect[1];
            // get selection bounds
            var sel = idoc.selection[0];
            var selVB = sel.visibleBounds;
            var selVw = selVB[2]-selVB[0];
            var selVh = selVB[1]-selVB[3];
            var selGB = sel.geometricBounds;
            var selGw = selGB[2]-selGB[0];
            var selGh = selGB[1]-selGB[3];
            // get the difference between Visible & Geometric Bounds
            var deltaX = selVw-selGw;
            var deltaY = selVh-selGh;
            if (sel.width > sel.height) {
                var newWidth = docw-deltaX;
                var ratio = sel.width / newWidth;
                sel.width = newWidth; // width is Geometric width, so we need to make it smaller...to accomodate the visible portion.
                sel.height = sel.height * ratio;
            } else {
                var newHeight = doch-deltaY;
                var ratio = sel.height / newHeight;
                sel.height = newHeight;
                sel.width = sel.width / ratio;
            sel.top = (doch / 2) - (sel.height / 2);
            sel.left = (docw / 2) - (sel.width / 2);
        else
                alert("select ONE object before running");

  • IND 3 or 4: script for making INDEX

    Hi,
    When typesetting books in Indesign cs3/4 (OSX), some of our texts contain words tagged like this: [r]word[#r].
    Those are the words which should end up in the index. It's a timeconsuming job to select these tagged words by hand, apply the 'create a new index entry' (apple-u), and move on to the next one.
    Can someone write a script that automates this nasty job for me? Search for the word between the paranthesis, apply apple-u, move on to the next one.
    I hope it won't be difficult for someone who is used scripting around in indesign.....
    greetings, frits

    Hi Frits,
    Check out this script (post5):
    Peter Kahrel, "Footnote behaviour" #5, 3 Dec 2008 7:24 am
    Kasyan

  • Is there a script for making a digital signature read-only after signing?

    When the user signs a PDF Form, the user can clear his own signature. I want to disable the "Clear Signature" feature. I noticed I can run a Javascript in the digital signature's property. Is it possible to execute a Javascript to make just that signature Read-only?
    Thanks.

    If the person who signed the document has Acrobat Pro, you could use the flattenPages() method, which lets you specify the page(s) to be flattened.
    For example:
    this.flattenPages(0)         //flattens page 1
    this.flattenPages(0, 2)     //flattens pages 1 - 3
    But if they have only Reader, they can't use flattenPages().

  • Script for making soundclips

    is there a script anywhere that will automatically make sound clips? Im not a script writer, but it seems pretty simple... stick a disc in, and click a button and it will rip 1 minute second sound clips. It wouldn't start at the beginning, it would start say 25% in to the song to get to the meat of a song, and end 1 minute later.
    i manually do this by setting the start / end fields in i-tunes, but surely there is a script out there
    any suggestions?
    thanks!

    is there a script anywhere that will automatically make sound clips? Im not a script writer, but it seems pretty simple... stick a disc in, and click a button and it will rip 1 minute second sound clips. It wouldn't start at the beginning, it would start say 25% in to the song to get to the meat of a song, and end 1 minute later.
    i manually do this by setting the start / end fields in i-tunes, but surely there is a script out there
    any suggestions?
    thanks!

  • Helpful Shell Scripts for Making Work Simpler with OVM

    Hi guys we are working on Oracle VM,
    I have created some scripts which will run on OVM Server .Hope they will be useful to you.
    These script are created keeping in mind OVM Manager is not available.
    I have created two scripts to make the following task possible through OVM Server.
    1>To take vnc console of the machine by just giving guest name.
    2>create virtual machines using template.
    Please share your views about the scripts.
    1)To take vnc console of the machine by just giving guest name.
    #This script will export DISPLAY variable globally
    if [ -z "$DISPLAY" ]
    then
    echo "Please Enter IP address of your machine"
    read ipadd
    export DISPLAY="$ipadd:0.0"
    else
    echo display is already set
    fi
    echo "Please Enter the Name of the virtual machine you want to take the console"
    read MachineName
    xm list $MachineName -l |grep 0.0.0.0: > tempdisplay
    cat tempdisplay | awk -F"0.0.0.0" '{print $NF}'> temp2display
    #sed s/"(location 0.0.0.0"/""/ tempdisplay > temp2display
    tempvariable=`sed s/")"/""/ temp2display`
    vncviewer $tempvariable &
    rm -f tempdisplay
    rm -f temp2display
    Edited by: user10373165 on Nov 22, 2009 10:46 PM

    You probably want to wrap your code samples with a tag.  It looks like some of the script text is not showing up.                                                                                                                                                                                                                                               

  • Script for Making a Field ReadOnly

    In Oracle CRM ON DEMAND we have the “Status” dropdown field with value as “Completed” in Activities. I have Configure it in a such a way so that the Subject field becomes read only when the status is set to Completed.How to do that.

    Subject is a Mandatory Field on the Activity Object, hence you can't make it read only inspite of using Dynamic Page Layouts. Only way you can do is, by use of Field Validations.
    You can define field validations on Subject or any other field. I prefer to choose a pick list field. Define the field validation on that pick list field following this logic.
    1. If the Status is not Completed, return the current value of the field
    2. If the Status is changed to Completed, return the current value of the field
    3. If the Status is not changed and the Subject is changed, return "Non Existing Pick list value" to the field
    By following the above logic, you can literally do anything. Hope this helps

  • Greasemonkey script for Adobe forums (for Firefox)

    Found a great little Greasemonkey script for making the forums a little more readable. It shows/hides the Actions panel on the right side of the screen to give more real estate to the messages.
    If you don't have Greasemonkey installed you can get it here:
    https://addons.mozilla.org/en-US/firefox/addon/748
    The show/hide script is found here:
    http://userscripts.org/scripts/show/46297

    great this is what i've been looking for, thanks!

  • Hi, I'm making hyperlinks. They work for the main page of the webpage, but when I'm trying to redirect the hyperlink to a "sub page" of the webpage it is still going to the main page. (allthough I'm pasting the complete url address)

    Hi, I'm making hyperlinks. They work for the main page of the webpage, but when I'm trying to redirect the hyperlink to a "sub page" of the webpage it is still going to the main page. (allthough I'm pasting the complete url address)

    Hi! first of all, thank you so much for your help.
    I don't know about that panel you are talking about.
    what I do is RIGHT CLICK, INTERACTIVE, NEW HYPERLINK, and a window pops up, where I paste the address (images).
    Where says URL I paste the complete address that the "sub page" gives me.
    Is that correct? (for the main page of the wabepage works correctly)
    thanks!!!

  • Help me making a deamon script for a specific eth0 configuration

    hi
    my idea is to have a daemon script for configuring my eth0 device with specific settings to connect to my xbox.
    i"ve got no idea on how to wirite a daemon script, so i hope to get some help from the community
    eth0 sould have:
    192.168.1.33  as ip
    255.255.255.0 as netmask
    192.168.1.1.55  as gateway

    kriz wrote:
    i k'no its possible with network deamon, but its a great investement to uncomment everytime my rc.conf, then /etc/rc.d/network start...
    i"m using by default my wireless to connect to internet
    don't want to use netcfg. want something like wpa_auto does for wireless conectons, just for eth0 specific settings
    You need to uncomment it once and set the correct values. That's it.

  • Script for Overriding, Outlining, and Clearing Masters

    As part of the submission process for one of our printers, we have to outline all the text on a set of labels. I've been trying to write a script to do three steps:
    1. Override all Master page objects
    2. Apply [none] master to all pages
    3. Outline all text
    I've gotten pretty far, but I seem to have hit a stumbling block on the Apply [none] master step. Any suggestions?
    var myDocument = app.activeDocument;
    var TotalPages = (myDocument.pages.count());
    for(var CurrentPage=0; CurrentPage < TotalPages; CurrentPage++) {
         OverrideMasterItems();
    function OverrideMasterItems() {
         myDocument.pages[CurrentPage].appliedMaster.pageItems.everyItem().override(myDocument.pages[CurrentPage]);
    //this next part is where I have the problem... I would think it would select all the pages in the document, then change the master page to "null" but it doesn't seem to have any effect at all.
    try{
        app.activeDocument.pages.everyItem().getElements().changeMaster(null);
        }catch(e){};
    //then this final part is working fine.
    try{
        app.activeDocument.textFrames.everyItem().createOutlines();
        }catch(e){};

    I can't help with your script, but I'll give you the standard advice that oulining text is bad practice, and toatally unnecessary in any reasonalby modern workflow that doesn't involve a cutting machine for making signs, or similar. You should find out WHY this printer seems to think it's necessary when ID automatically embeds all non-protected fonts in a PDF.
    If you still want to outline, you don't want to do it by converting text to outlines before exporting. You'll lose all your automated bullets and list numbers and any underlines or paragraph rules. Far better to let the transparency flattener do the job during export. See Possible bug: oulining text w/ flattener in CS5

  • Is there an updatedcrossrefs script for InDesign CS6

    Running Mac Pro/2.66 GHz—Quad-Core Intel Xeon/Snow Leopard/
    OS/Mac OS X Version 10.6.2/2.66 GHz
    I converted a CS3 InDesign that uses the script "updatedcrossrefs.js", to CS6 InDesign. This file uses hyperlinks on the TOC and Index.
    I tried using the same script for CS3 InDesign in CS6 InDesign but it does not work.
    This is the error message "Could not catch page. Check destination names and existence."
    Is there an updated script for CS6?

    Sorry did not know I was using bold. My co-worker found this script however, she does not work here anymore. But here is the script. I know nothing about scripts except how to use them. Sorry.
    // Updatecrossrefs.js
    // Updates cross references made with hyperlinks
    // the hyperlink destination is where the reference refers to
    // the hyperlink sourcetext is the text that will be updated (like see xx)
    // If a book is open, the book will be handled,
    // if no book is open, the active document will be handled.
    // Made by Teus de Jong, last version April 10, 2006
    // Revisions by Dave Saunders January 22, 2006 and March 20, 2006
    // Thanks Dave!
    // Added unique naming mechanism for sources -- October, 2008
    if (app.books.length == 0){
              if (app.documents.length == 0){
                        errorExit('No documents are open');
              } else {
                        nrofdocs = 1;
                        doc = app.activeDocument;
    } else {
              nrofdocs = app.books[0].bookContents.length;
              for (i = nrofdocs - 1; i > -1; i--) {
                        if (app.books[0].bookContents[i].status != BookContentStatus.documentIsOpen)
                                  app.open(File(app.books[0].bookContents[i].fullName));
              doc = app.open(app.books[0].bookContents[0].fullName);
    for (d = 1; d <= nrofdocs; d++){
              for (i = 0; i < doc.hyperlinks.length; i++){
                        hyper = doc.hyperlinks[i];
                          // leave ID's own internal markers alone
                        if (hyper.name.substring(0, 1) == '.'){continue}
                          // leave hyperlinks to URLs alone
                          try {
                                  if (hyper.destination.constructor.name == 'HyperlinkURLDestination'){continue}
                        } catch (e) {
                                  hyper.showSource();
                                  errorExit('Selected hyperlink has undefined destination');
                        s = hyper.source.name;
                        // added October, 2008
                        // sometimes ID's unique name mechanism for sources fails; make sure the source has
                        // the same name as the hyperlink + '_src'
                        if (s != hyper.name + '_src')
                                  hyper.source.name = hyper.name + '_src';
                        if (hyper.destination.constructor.name == 'HyperlinkTextDestination'){
                                  s = getParentPageName(hyper.destination.destinationText);
                         } else {
                                   // try/catch added to allow for hyperlinks that have lost their destination -- Dave
                                   try {
                                              s = hyper.destination.destinationPage.name;
                                    } catch (e) { continue }
                        if (s != ''){
                                  // Check to see if update needed; saves a lot of time when processing large books -- Dave
                                  if (hyper.source.sourceText.contents != s) {
                                            hyper.source.sourceText.contents = s;
              if (d >= nrofdocs){
                        break;
              doc = app.open(app.books[0].bookContents[d].fullName);
    function getParentPageName(txt){
              try { 
                        var myFrame = getParentTextFrame(txt);
                        var pag = myFrame.parent;
                        while (pag.constructor.name != 'Page'){
                                  // in case the reference is in an inline, the parent of the frame is a character
                                  if (pag.constructor.name == 'Character'){
                                            pag = getParentTextFrame(pag);
                                  // in case the chain goes sour, back out
                                  if (pag.constructor.name == 'Application'){
                                            throw 'Error';
                                  pag = pag.parent;
                        return(pag.name);
              catch (e) {
                        alert('Could not catch page.\nCheck destination names and existence.');
                        return('');
    function getParentTextFrame(x){
              if(app.version == 3){
                        return(x.parentTextFrame);
              else {
                        return(x.parentTextFrames[0]);
    function errorExit(s){
              alert(s);
              exit();

  • Logic for making ASN as an attachment to a email?

    hi all,
    can anyone help me trying to write a logic for making the Advanced Shipment Notification as an email attachment after having converted it into pdf format?
    I need logic for:
    1) Initially converting it into pdf
    2) Making the pdf as an attachment and not as a general email content.
    Thanks & Regard/Aryan

    Dear Aryan,
    This conversion to pdf can be done by using program RSTXPDFT4, and for the pdf to be sent as attachment you need to contact your technical team as they will write a script for that, scheduling of the same can also be done.
    Reward Points if it helps,
    Regards,
    N

Maybe you are looking for

  • Hp pavillion 500-185el graphic card problems after update to windows 8.1

    hallo after i done the Windows 8.1 update my graphic card is giving me some problem. occasionally my desktop become black for 1-2 seconds and the background disappears. I've update all drivers. the problems started after the update to Windows 8.1 gra

  • HP 3005x printer jam issue

    Have a 3005x with the 3rd tray add on. When trying to print from tray 2 you can hear the roller spinning 3 times than it comes up saying paper jam tray 2. If you hit the continue button the job will then print the second time. I have checked the pape

  • Importing RSS with HTML in AS3

    I succesfully imported RSS in Flash... now in flash i have <title> <link> and <description> I want to Display in a List component the Title and the Description, and on click a textfield displays the HTML text grabbed from the Link... Here's my code v

  • Network Policy Server Policies

    We are using Windows Network Policy Server application as a radius server for VPN connections using windows server 2008 R2. On my firewall, we currently have only 1 VPN profile and we have a Network Policy that saysif they are not part of this window

  • Error wwhile intalling Oracle 10g Designer 9.0.4.5

    While installing this Oracle product i have two errors The first one http://www2.shrani.si/files/napakaor449149.jpg and after clickinh on "Stop installation for this component only" I get this error: http://www2.shrani.si/files/napakaor449150.jpg Can