if (app.documents.length < 2) {
exitScript("Для работы нам нужно два документа");
}
if (app.selection.length != 1 || app.selection[0].tables.length == 0) {
exitScript("Выберите один фрейм с исходной таблицей и попробуйте ещё раз.");
}
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
var srsDoc = app.documents.itemByName(app.documents[1].name);
var newDoc = app.documents.itemByName(app.documents[0].name);
if (!confirm("!!!\r" + "Copy from: " + srsDoc.name + "\r" + "Paste to: " + newDoc.name + "\r" + "...continue?")) {
exit();
}
// Чистим таблицу
var myStory = newDoc.selection[0].parentStory;
doGrep("(^\\d+)(.*)", "$1", myStory);
doGrep("(^\\D+.+)", "", myStory);
// Собираем данные
var dataTable = app.selection[0].tables[0];
var data = [];
for (i = 0, iLen = dataTable.rows.length; i < iLen; i++) {
var myRow = dataTable.rows[i];
var newPageNum = myRow.cells[0].contents;
var srsPageNum = myRow.cells[1].contents;
if (newPageNum.length == 0 || srsPageNum.length == 0) { continue }
data.push([newPageNum,srsPageNum]);
}
// Копируем и вставляем:
for (i = 0, dLen = data.length; i < dLen; i++) {
try {
var tmp = data[i];
var srsPage = srsDoc.pages.itemByName(tmp[1].toString());
var newPage = newDoc.pages.itemByName(tmp[0].toString());
for (f = srsPage.allPageItems.length-1; f >=0; f--) {
var frame = srsPage.allPageItems[f];
// if (frame.locked === true) { frame.locked = false }
if (frame.parent.constructor.name === "Rectangle" ) { continue }
frame.duplicate(newPage);
}
} catch (error) {
continue;
}
}
alert("Done!");
function exitScript(mess) {
alert(mess);
exit();
}
function doGrep(myFindWhat, myChangeTo) {
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = myFindWhat;
app.changeGrepPreferences.changeTo = myChangeTo;
myStory.changeGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;
}