1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Корректное выравнивание шрифтов (и их resize)

Тема в разделе "Adobe Illustrator", создана пользователем -, 21 июн 2003.

  1. Guest

    Меня всегда бесило что выровнять текстовой объект через Align невозможно - текст выравнивается не по своему начертанию, а по всяким-там линиям выносных элементов, границам текстового блока (бывает что это не нужно) и прочим невидимым деталям. По тем же причинам было невозможно и корректно изменять размеры текстового объекта. Для того, шо б боле не волноваться по этому поводу я написал такие скрипты
    1) Align текстового объекта по левому краю
    2) Align текстового объекта по правому краю
    3) Align текстового объекта по верху
    4) Align текстового объекта по низу
    5) Align текстового объекта по горизонтальному центру
    6) Align текстового объекта по горизонтальному центру
    7) Пропорциональное изменение размера текстового объекта по ширине
    8) Пропорциональное изменение размера текстового объекта по высоте

    Во всех этих скриптах объектом по которому равняются/трансформируются является самый нижний (по глубине) из выделенных объектов. Итак:

    //Align текстового объекта по левому краю
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=outline.position[0]-goal.position[0];
    outline.remove();
    obj.position=Array((obj.position[0]-dist),(obj.position[1]))
    }else{
    obj.position=Array((goal.position[0]),(obj.position[1]));
    }
    }
    }
    }else{}


    //Align текстового объекта по правому краю
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    rightPoint=goal.position[0]+goal.width;
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=(outline.position[0]+outline.width)-rightPoint;
    outline.remove();
    obj.position=Array((obj.position[0]-dist),(obj.position[1]))
    }else{
    obj.position=Array((rightPoint-obj.width),(obj.position[1]));
    }
    }
    }
    }else{}


    //Align текстового объекта по верху
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=outline.position[1]-goal.position[1];
    outline.remove();
    obj.position=Array((obj.position[0]),(obj.position[1]-dist))
    }else{
    obj.position=Array((obj.position[0]),(goal.position[1]));
    }
    }
    }
    }else{}


    //Align текстового объекта по низу
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    bottomPoint=goal.position[1]-goal.height;
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=(outline.position[1]-outline.height)-bottomPoint;
    outline.remove();
    obj.position=Array((obj.position[0]),(obj.position[1]-dist))
    }else{
    obj.position=Array((obj.position[0]),(bottomPoint+obj.height));
    }
    }
    }
    }else{}


    //Align текстового объекта по горизонтальному центру
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    centerPoint=goal.position[0]+(goal.width/2);
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=(outline.position[0]+outline.width/2)-centerPoint;
    outline.remove();
    obj.position=Array((obj.position[0]-dist),(obj.position[1]))
    }else{
    obj.position=Array((centerPoint-(obj.width/2)),(obj.position[1]));
    }
    }
    }
    }else{}


    //Align текстового объекта по горизонтальному центру
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    centerPoint=goal.position[1]-(goal.height/2);
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    dist=(outline.position[1]-outline.height/2)-centerPoint;
    outline.remove();
    obj.position=Array((obj.position[0]),(obj.position[1]-dist))
    }else{
    obj.position=Array((obj.position[0]),(centerPoint+(obj.height/2)));
    }
    }
    }
    }else{}


    //Пропорциональное изменение размера текстового объекта по ширине
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    ratio=100/(outline.width/goal.width);
    outline.remove();
    }else{
    ratio=100/(obj.width/goal.width);
    }
    obj.resize(ratio,ratio,true,true,true,true,ratio)
    }
    }
    }else{}


    //Пропорциональное изменение размера текстового объекта по высоте
    mySelection = activeDocument.selection;
    if (mySelection.length>0){
    if (mySelection instanceof Array){
    goal=mySelection[mySelection.length-1];
    for (i=0; i<(mySelection.length-1); i++){
    obj=mySelection;
    if(obj.typename=='TextArtItem'){
    outl=obj.duplicate();
    outline=outl.createOutline();
    ratio=100/(outline.height/goal.height);
    outline.remove();
    }else{
    ratio=100/(obj.height/goal.height);
    }
    obj.resize(ratio,ratio,true,true,true,true,ratio)
    }
    }
    }else{}
     

Поделиться этой страницей