Illustrator脚本开发大小写转换
发布时间:2024-11-08 11:55 [ 我要自学网原创 ] 发布人: 快乐小女 阅读: 1178

var win = new Window("dialog", "我要自学网案例: 大小写转换")
var desc = win.add("panel", undefined, "说明")
desc.margins = 20 // 边距

var selection = app.activeDocument.selection

var btnGroup = win.add("group")

if (selection.typename == "TextRange") {
    desc.add("statictext", undefined, "当前文本范围里共有 " + selection.parent.length + " 个文字")
    desc.add("statictext", undefined, "选中了 " + selection.length + " 个文字")
    desc.add("statictext", undefined, "(转换后, 请务必仔细核对)")

    var minBtn = btnGroup.add("button", undefined, "转换为小写")
    minBtn.onClick = function(){
        for(var i=0; i<selection.characters.length; i++){

            if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                alert(
                    "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                )
                continue
            }

            var attr = selection.characters[i].characterAttributes

            selection.characters[i].contents = selection.characters[i].contents.toLowerCase()
          
            selection.characters[i].characterAttributes = attr
        }  

        win.close()
    }

    var goBtn = btnGroup.add("button", undefined, "大小写转换")
    goBtn.onClick = function(){
        for(var i=0; i<selection.characters.length; i++){

            if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                alert(
                    "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                )
                continue
            }

            var attr = selection.characters[i].characterAttributes

            selection.characters[i].contents = toggleCase(selection.characters[i].contents)
          
            selection.characters[i].characterAttributes = attr
        }  

        win.close()
    }

    var maxBtn = btnGroup.add("button", undefined, "转换为大写")
    maxBtn.onClick = function(){
        for(var i=0; i<selection.characters.length; i++){

            if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                alert(
                    "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                )
                continue
            }

            var attr = selection.characters[i].characterAttributes

            selection.characters[i].contents = selection.characters[i].contents.toUpperCase()
          
            selection.characters[i].characterAttributes = attr
        }  

        win.close()
    }

} else {
    var textArr = []

    for(var i =0; i<selection.length; i++){
        getTextFrameByEl(selection[i], textArr)
    }

    desc.add("statictext", undefined, "当前选择集合里共有 " + textArr.length + " 段文本对象")
    desc.add("statictext", undefined, "(转换后, 请务必仔细核对)")

    var minBtn = btnGroup.add("button", undefined, "转换为小写")
    minBtn.onClick = function(){
        for(var j=0; j<textArr.length; j++){
            var selection = textArr[j]

            for(var i=0; i<selection.characters.length; i++){

                if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                    alert(
                        "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                    )
                    continue
                }
   
                var attr = selection.characters[i].characterAttributes
   
                selection.characters[i].contents = selection.characters[i].contents.toLowerCase()
              
                selection.characters[i].characterAttributes = attr
            }  

        }
        win.close()
    }

    var goBtn = btnGroup.add("button", undefined, "大小写转换")
    goBtn.onClick = function(){
        for(var j=0; j<textArr.length; j++){
            var selection = textArr[j]

            for(var i=0; i<selection.characters.length; i++){

                if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                    alert(
                        "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                    )
                    continue
                }
   
                var attr = selection.characters[i].characterAttributes
   
                selection.characters[i].contents = toggleCase(selection.characters[i].contents)
              
                selection.characters[i].characterAttributes = attr
            }  

        }
        win.close()
    }

    var maxBtn = btnGroup.add("button", undefined, "转换为大写")
    maxBtn.onClick = function(){
        for(var j=0; j<textArr.length; j++){
            var selection = textArr[j]

            for(var i=0; i<selection.characters.length; i++){

                if(selection.characters[i].characterAttributes.capitalization !== FontCapsOption.NORMALCAPS){
                    alert(
                        "提示: 当前第 " + (i+1) + "个文字: " + selection.characters[i].contents + " 设置了字符->大写字母效果, 跳过这个文字的执行"
                    )
                    continue
                }
   
                var attr = selection.characters[i].characterAttributes
   
                selection.characters[i].contents = selection.characters[i].contents.toUpperCase()
              
                selection.characters[i].characterAttributes = attr
            }  

        }
        win.close()
    }

}


win.show()

function toggleCase(str){
    var newStr = ""
   
    for(var i = 0; i<str.length; i++){
        newStr += str[i].toUpperCase() == str[i] ? str[i].toLowerCase() : str[i].toUpperCase()
   
    }

    return newStr
}

function getTextFrameByEl(el, arr){
    if(el.typename == "TextFrame"){
        arr.push(el)
    }

    if(el.typename == "GroupItem"){
        for(var i=0; i<el.pageItems.length; i++){
            getTextFrameByEl(el.pageItems[i], arr)
        }
    }

}

Illustrator脚本开发教程
我要自学网商城 ¥70 元
进入购买
文章评论
0 条评论 按热度排序 按时间排序 /350
遵守中华人民共和国的各项道德法规,
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。
V
特惠充值
联系客服
APP下载
官方微信
返回顶部
分类选择:
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长 AIGC