Quantcast
Channel: Adobe Community: Message List - InDesign Scripting
Viewing all articles
Browse latest Browse all 37788

Re: Need to avaid placing floats one after one on the same place

$
0
0

Hi Vandy,

 

It is a xml workflow.

 

Here is the script.

 

function caption(){

    this.name = "caption";

    this.xpath = "//caption";

          this.apply = function(caption,){

        with(caption){

            var mydoc = app.activeDocument;

            var pwidth = mydoc.documentPreferences.pageWidth;

            var pheight = mydoc.documentPreferences.pageHeight;

            var topmargin = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.top;    

            var bottommargin = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.bottom;

            var insidemarginfirstmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.left;

            var outsidemarginfirstmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.right;

            var y1 = topmargin;

            var x1 = outsidemarginfirstmaserpage;

            var y2 = pheight - bottommargin;

            var x2 = pwidth- insidemarginfirstmaserpage;           

            citpage = figCitationPage.name;

            textfm = placeIntoFrame(app.activeDocument.pages.item(citpage), [y1, x1, y2, x2]);

            textfm.fit(FitOptions.FRAME_TO_CONTENT);

            textfm.appliedObjectStyle = mydoc.objectStyles.item("oSlug");

            mydoc.xmlImportMaps.add(mydoc.xmlTags.item("caption"), mydoc.paragraphStyles.item("Slug"));

            mydoc.mapXMLTagsToStyles();

            textfm.textWrapPreferences.textWrapMode = TextWrapModes.BOUNDING_BOX_TEXT_WRAP;

            textfm.textFramePreferences.ignoreWrap = true;

            var textfmy1 = textfm.geometricBounds[0];

            var textfmx1 = textfm.geometricBounds[1];

            var textfmy2 = textfm.geometricBounds[2];

            var textfmx2 = textfm.geometricBounds[3];

            figfmy1 = figfm.geometricBounds[0];

            figfmx1 = figfm.geometricBounds[1];

            figfmy2 = figfm.geometricBounds[2];

            figfmx2 = figfm.geometricBounds[3];

            textfm.geometricBounds = [textfmy1,textfmx1,textfmy2,x2];

            textfm.move([textfmy1, figfmy2]);

            textfm.fit(FitOptions.FRAME_TO_CONTENT);

            var myPage = mydoc.pages.everyItem();

            var myArray = new Array;

            myArray.push(figfm);

            myArray.push(textfm);

            var t = (textfmy2-textfmy1)

            var groupitem = figCitationPage.groups.add(myArray);

            var citbaseline = exbm - citpos;

            var test = parseInt(citpage)

            var citbaseline = exbm - citpos;

            var test = parseInt(citpage)

            if (citbaseline<groupitem.geometricBounds[2]){

                    groupitem.move(app.activeDocument.pages[test]);

                    groupitem.move([x1,y1])

                }

            else {

                    var by1 = groupitem.geometricBounds[0];

                    var by2 = groupitem.geometricBounds[2];

                    var t = (by2-by1)

                    groupitem.move([x1, (y2-t)])

                }

        }

        return true;

    }

}

 

 

function figure(){

    this.name = "figure";

    this.xpath = "//figure";

          this.apply = function(figure,){

        with(figure){

            var mydoc = app.activeDocument;

            var pwidth = mydoc.documentPreferences.pageWidth;

            var pheight = mydoc.documentPreferences.pageHeight;

            var topmargin = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.top;    

            var bottommargin = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.bottom;

            var insidemarginfirstmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.left;

            var outsidemarginfirstmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(0).marginPreferen ces.right;

            //var insidemarginsecondmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(1).marginPreferen ces.left;

            //var outsidemarginsecondmaserpage = app.activeDocument.masterSpreads.item(0).pages.item(1).marginPreferen ces.right;

            var y1 = topmargin;

            var x1 = outsidemarginfirstmaserpage;

            //var x1recto = AMinsidemargin

            var y2 = pheight - bottommargin;

            var x2 = pwidth- insidemarginfirstmaserpage;           

            //var x2recto = pwidth- AMoutsidemargin;

            citpage = figCitationPage.name;

            figfm = placeIntoFrame(app.activeDocument.pages.item(citpage), [y1, x1, y2, x2]);

            figfm.fit(FitOptions.FRAME_TO_CONTENT);

            figfm.textWrapPreferences.textWrapMode = TextWrapModes.BOUNDING_BOX_TEXT_WRAP;

            figfm.textFramePreferences.ignoreWrap = true;

            figfm.appliedObjectStyle = mydoc.objectStyles.item("ofigure");

            fy1 = figfm.geometricBounds[0];

            fx1 = figfm.geometricBounds[1];

            fy2 = figfm.geometricBounds[2];

            fx2 = figfm.geometricBounds[3];

        }

        return true;

    }

}


Viewing all articles
Browse latest Browse all 37788

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>