您当前的位置: 首页 > 

插件开发

暂无认证

  • 5浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

InDesign插件--常规功能开发--移动选择项目到指定页--js脚本开发--ID插件

插件开发 发布时间:2022-03-07 10:40:43 ,浏览量:5

文章目录
    • 1.算法程序
    • 2.作者答疑

1.算法程序

  Adobe InDesign是Adobe公司的一个桌面出版 (DTP) 的应用程序,主要用于各种印刷品的排版编辑。InDesign可以将文档直接导出为Adobe的PDF格式,而且有多语言支持。采用脚本语言自动化编码,在学习中的一个重要功能是移动选择项目到指定页功能,以下源代码仅用于学习交流,请勿用于商业用途和其它非法用途。源代码如下所示:

try {
    var myDocument = app.activeDocument;
    with (myDocument) {
        var myselection = selection;
        var myprefs = documentPreferences.properties;
        var mymaxpagenumber = myprefs.pagesPerDocument;
        var theselectcount = selection.length;

        //make the dialog
        var myDialog = app.dialogs.add({
            name: "移动选择的项目",
            canCancel: true
        });
        with (myDialog) {
            with (dialogColumns.add()) {
                with (borderPanels.add()) {
                    with (dialogColumns.add()) {
                        staticTexts.add({
                            staticLabel: "想要把选择的项目移动到哪?"
                        });
                        staticTexts.add({
                            staticLabel: "请在后面输入页码"
                        });
                    }
                    with (dialogColumns.add()) {
                        staticTexts.add({
                            staticLabel: ""
                        });
                        var mypageinfo = integerEditboxes.add({
                            minWidth: 40,
                            minValue: 1,
                            maximumValue: mymaxpagenumber
                        });
                    }
                }
                if (theselectcount > 1) {
                    with (borderPanels.add()) {
                        staticTexts.add({
                            staticLabel: "Group Items",
                            minWidth: 102
                        });
                        var myradiogroup = radiobuttonGroups.add();
                        with (myradiogroup) {
                            var myyesradiobutton = radiobuttonControls.add({
                                staticLabel: "Make into a Group",
                                checkedState: true
                            });
                            var mynoradiobutton = radiobuttonControls.add({
                                staticLabel: "Leave as Selected"
                            });
                        }
                    }
                }
            }
        }
        if (myDialog.show() == true) {
            if (theselectcount > 1) {
                var mygroupungroup = myradiogroup.selectedButton;
            }
            var mypage = mypageinfo.editContents;
            myDialog.destroy();
        }

        var myoldviewprefs = viewPreferences.properties
            var myprefs = documentPreferences
            with (myprefs) {
            var mymaxpagenumber = pagesPerDocument
        }
        if (viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin) {
            var myoldorigin = RulerOrigin.spreadOrigin;
            viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
        }
        var currentPage = myDocument.layoutWindows.item(0).activePage
            var myselection = selection;
        var mycount = myselection.length
            if (theselectcount > 1) {
                myStuff = new Array();
                for (i = 0; mycount > i; i++) {
                    myStuff.push(myselection[i]);
                }
                mygroup = app.activeWindow.activePage.groups.add(myStuff);
                var mymovepage = pages.item(mypage - 1)
                    var myBounds = mygroup.geometricBounds
                    var a = myBounds[0]
                    var b = myBounds[1]
                    var c = myBounds[2]
                    var d = myBounds[3]
                    mygroup.move(mymovepage, undefined)
                    mygroup.move([b, a], undefined)
                    if (mygroupungroup == 1)
                        mygroup.ungroup()
            } else {
                var mymovepage = pages.item(mypage - 1)
                    var mysingleselection = selection[0]
                    var myBounds = mysingleselection.geometricBounds
                    var a = myBounds[0]
                    var b = myBounds[1]
                    var c = myBounds[2]
                    var d = myBounds[3]
                    mysingleselection.move(mymovepage, undefined)
                    mysingleselection.move([b, a], undefined)
            }
            app.activeWindow.activePage = mymovepage
            if (myoldorigin = RulerOrigin.spreadOrigin) {
                viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin
            }
    }
} catch (e) {
    if (app.documents.length == 0) {
        alert("没有已经打开的InDesign文档,打开一个文档然后选择想要移动的项目。");
    } else {
        if (app.selection.length == 0) {
            alert("没有项目被选择,请选择想要移动的项目。");
        }
    }
}
2.作者答疑

  代码长度过长,如需全部项目,请留言。

提示: 作者知了-联系方式1 提示: 作者知了-联系方式2

关注
打赏
1665481431
查看更多评论
立即登录/注册

微信扫码登录

0.0449s