Adobe InDesign是Adobe公司的一个桌面出版 (DTP) 的应用程序,主要用于各种印刷品的排版编辑。InDesign可以将文档直接导出为Adobe的PDF格式,而且有多语言支持。采用脚本语言自动化编码,在学习中的一个重要功能是奇偶页物件分别移动功能,以下源代码仅用于学习交流,请勿用于商业用途和其它非法用途。源代码如下所示:
myDialog = app.dialogs.add({
name: "奇数页、偶数页全部物件分别移动",
canCancel: true
});
myLabelsColumn1 = myDialog.dialogColumns.add();
with (myLabelsColumn1) {
staticTexts.add({
staticLabel: "┏━ID页码"
});
staticTexts.add({
staticLabel: "开始页:"
});
staticTexts.add({
staticLabel: "结束页:"
});
staticTexts.add({
staticLabel: "┌┄奇数页┄"
});
staticTexts.add({
staticLabel: "水平偏移:"
});
staticTexts.add({
staticLabel: "垂直偏移:"
});
staticTexts.add({
staticLabel: "┌┄偶数页┄"
});
staticTexts.add({
staticLabel: "水平偏移:"
});
staticTexts.add({
staticLabel: "垂直偏移:"
});
}
myLabelsColumn2 = myDialog.dialogColumns.add();
myLabelsColumn2.staticTexts.add({
staticLabel: "━━━━━┓"
});
StartPageField = myLabelsColumn2.realEditboxes.add({
editValue: 1
});
EndPageField = myLabelsColumn2.realEditboxes.add({
editValue: 5
});
myLabelsColumn2.staticTexts.add({
staticLabel: "┄┄┄┄┄┐"
});
OddXField = myLabelsColumn2.measurementEditboxes.add(); //{editUnits:MeasurementUnits.millimeters});
OddYField = myLabelsColumn2.measurementEditboxes.add();
myLabelsColumn2.staticTexts.add({
staticLabel: "┄┄┄┄┄┐"
});
EvenXField = myLabelsColumn2.measurementEditboxes.add();
EvenYField = myLabelsColumn2.measurementEditboxes.add();
//Display the dialog box.
if (myDialog.show() == true) {
myDoc = app.activeDocument;
StartPage = StartPageField.editValue;
EndPage = EndPageField.editValue;
OddX = OddXField.editValue;
OddY = OddYField.editValue;
EvenX = EvenXField.editValue;
EvenY = EvenYField.editValue;
//Save the current measurement units.
var myOldXUnits = app.activeDocument.viewPreferences.horizontalMeasurementUnits;
var myOldYUnits = app.activeDocument.viewPreferences.verticalMeasurementUnits;
//Set the measurement units to points.
app.activeDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
app.activeDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
//奇数页、偶数页循环起始及次数
PagesNum = EndPage - StartPage + 1;
StartN = Math.round(StartPage / 2);
EndN = Math.round(EndPage / 2);
if ((PagesNum % 2 == 0) && (EndPage % 2 == 0)) {
OddStartN = StartN;
OddEndN = EndN;
EvenStartN = StartN;
EvenEndN = EndN;
} else if ((PagesNum % 2 == 0) && (EndPage % 2 !== 0)) {
OddStartN = StartN + 1;
OddEndN = EndN;
EvenStartN = StartN;
EvenEndN = EndN - 1;
} else if ((PagesNum % 2 !== 0) && (EndPage % 2 == 0)) {
OddStartN = StartN;
OddEndN = EndN - 1;
EvenStartN = StartN;
EvenEndN = EndN;
} else if ((PagesNum % 2 !== 0) && (EndPage % 2 !== 0)) {
OddStartN = StartN;
OddEndN = EndN;
EvenStartN = StartN;
EvenEndN = EndN - 1;
}
//奇数页、偶数页全部物件分别移动
for (i = OddStartN; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?