Skip to main content
Participant
October 20, 2014
Answered

How to divide text frame to separate text frames each for one line.

  • October 20, 2014
  • 2 replies
  • 2674 views

I mean fast the same as splitstory script, but I must first draw all lines of text into separate text frame.

How copy for example frame with 10 lines of text to separate 10 frames and then split.

Dropbox - screen.jpg

This topic has been closed for replies.
Correct answer Chinnadk

Hi,

Try this,

var doc = app.activeDocument,

    sel = doc.selection[0],

    _lines = sel.parent.lines,

    txfm = sel.parentTextFrames[0],

    gb = txfm.geometricBounds;

for(var i =_lines.length-1;i>0;i--)

{

        var nextframe = txfm.parentPage.textFrames.add({geometricBounds:[_lines[i-1].baseline,gb[1],_lines.baseline,gb[3]]});

        nextframe.textFramePreferences.firstBaselineOffset =  FirstBaseline.LEADING_OFFSET;

        txfm.nextTextFrame = nextframe;

    }

txfm.geometricBounds = [gb[0],gb[1],_lines[0].baseline,gb[3]];

for(var i =sel.parent.textContainers.length-1;i>=0;i--)

{

        sel.parent.textContainers.duplicate();

    }

for(var i =sel.parent.textContainers.length-1;i>=0;i--)

{

        sel.parent.textContainers.remove();

    }

Regards,

Chinna

2 replies

ewamosAuthor
Participant
October 21, 2014

Thanks to all, that's work. It very nice features.

Community Expert
October 21, 2014

@ewamos – please, do not tick my answer as correct, but Chinna's #1.

The lines of code are from Chinna, not me…

Thank you.

Uwe

Chinnadk
ChinnadkCorrect answer
Legend
October 21, 2014

Hi,

Try this,

var doc = app.activeDocument,

    sel = doc.selection[0],

    _lines = sel.parent.lines,

    txfm = sel.parentTextFrames[0],

    gb = txfm.geometricBounds;

for(var i =_lines.length-1;i>0;i--)

{

        var nextframe = txfm.parentPage.textFrames.add({geometricBounds:[_lines[i-1].baseline,gb[1],_lines.baseline,gb[3]]});

        nextframe.textFramePreferences.firstBaselineOffset =  FirstBaseline.LEADING_OFFSET;

        txfm.nextTextFrame = nextframe;

    }

txfm.geometricBounds = [gb[0],gb[1],_lines[0].baseline,gb[3]];

for(var i =sel.parent.textContainers.length-1;i>=0;i--)

{

        sel.parent.textContainers.duplicate();

    }

for(var i =sel.parent.textContainers.length-1;i>=0;i--)

{

        sel.parent.textContainers.remove();

    }

Regards,

Chinna

ewamosAuthor
Participant
October 21, 2014

Thanks for help, but don't work.

Dropbox - screen2.jpg

Obi-wan Kenobi
Legend
October 21, 2014

Hi,

I think you don't know that Ajar Productions propose us a script to do this!

Ajar Productions » Split Text Extension for InDesign