InDesign外掛--常規功能開發--奇偶頁物件分別移動--js指令碼開發--ID外掛
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 <= OddEndN; i++) {
//奇數頁
myOddPage = myDoc.pages[(2 * i - 1 - 1)];
//奇數頁全部物件偏移量
for (Oddobj = 0; Oddobj <= myOddPage.allPageItems.length - 1; Oddobj++) {
myOddbject = myOddPage.allPageItems[Oddobj];
myOddbject.move(undefined, [OddX, OddY]);
}
}
//偶數頁全部物件偏移量
for (i = EvenStartN; i <= EvenEndN; i++) {
//偶數頁
myEvenPage = myDoc.pages[(2 * i - 1)];
for (Evenobj = 0; Evenobj <= myEvenPage.allPageItems.length - 1; Evenobj++) {
myEvenbject = myEvenPage.allPageItems[Evenobj];
myEvenbject.move(undefined, [EvenX, EvenY]);
}
}
//Reset the measurement units to their original values.
app.activeDocument.viewPreferences.horizontalMeasurementUnits = myOldXUnits;
app.activeDocument.viewPreferences.verticalMeasurementUnits = myOldYUnits;
} else {
myDialog.destroy();
}
合理的指令碼程式碼可以有效的提高工作效率,減少重複勞動。
歡迎光臨知了軟體開發網路平臺,本公司定製開發各類軟體,主要方向為桌面專業軟體開發和外掛定製開發,桌面軟體主要包括文字圖形識別類軟體,資訊管理類軟體,3D列印類軟體,視訊類軟體以及其它涉及專業的各類圖形影像處理軟體。外掛包含AE外掛,AI外掛,PS外掛,PDF外掛,3DMAX外掛以及Word,Excel等Office外掛開發。詳情請諮詢,微信QQ:312117271,手機:18928899728,郵箱: anjingzhi_sea@163.com.
公司網址:http://www.zhiliaos.com
相關文章
- InDesign外掛--常規功能開發--移動選擇專案到指定頁--js指令碼開發--ID外掛JS指令碼
- InDesign外掛--常規功能開發--對齊到頁面--js指令碼開發--ID外掛JS指令碼
- InDesign外掛--常規功能開發--隨機填充--js指令碼開發--ID外掛隨機JS指令碼
- illustrator外掛--拼版功能開發--印前角線--js指令碼開發JS指令碼
- wordpress外掛開發02-首頁文章自動摘要外掛開發
- Vue.js 外掛開發Vue.js
- YonBuilder移動開發-移動原生外掛開發環境配置教程UI移動開發開發環境
- 手把手教你開發 MyBatis 分頁外掛MyBatis
- Idea日常開發外掛Idea
- fastclick外掛的使用--移動端vue專案開發(vue常用外掛)ASTVue
- Flutter外掛開發Flutter
- Mybatis外掛開發MyBatis
- Webstorm 外掛開發WebORM
- flutter 外掛開發Flutter
- 開發Rhino外掛
- chrome 外掛開發Chrome
- Flutter外掛開發---Android篇FlutterAndroid
- IDEA外掛開發學習Idea
- Android Studio 外掛開發Android
- Android外掛式開發(一)Android
- apisix~lua外掛開發與外掛註冊API
- 移動開發必備!15款jQuery Mobile外掛移動開發jQuery
- Vue.js 外掛開發詳解Vue.js
- 使用React.js開發Chrome外掛ReactJSChrome
- Android Studio Plugin 外掛開發教程(一) —— 開發你的第一個外掛AndroidPlugin
- mybatis generator外掛系列--分頁外掛MyBatis
- babel 外掛開發案例Babel
- Maven外掛開發教程Maven
- Chrome外掛開發教程Chrome
- Stylus外掛開發教程
- chrome外掛開發文件Chrome
- babel外掛開發心得Babel
- Vue-外掛開發Vue
- jQuery外掛開發模式jQuery模式
- jquery外掛開發方法jQuery
- dlopen開發外掛庫
- Android Studio Plugin 外掛開發教程(二) —— 外掛SDK中的常用物件介紹AndroidPlugin物件
- Flutter開發之Flutter外掛開發Flutter