- Сообщения
- 578
- Реакции
- 200
Здравствуйте.
Прислали каталог в InDesign на почти 1000 страниц одним файлом, задача - подготовить его к переводу.
По требованию заказчика на этом этапе нужно удалить из файла всю информацию о структуре (XML), но оставить весь контент Индизайна на месте.
В файле хранится много элементов структуры, порядка 25000 согласно данным скрипта.
Подготовил скрипт для удаления структуры (в конце поста) и запустил. В связи с тем, что часть тегов находится в заблокированном контенте, постоянно ловил вот такие ошибки:
Переделал скрипт, чтобы он работал с
Запустил скрипт опять, подождал порядка 5 часов и обнаружил, что большую часть элементов скрипт удалил, но около 11 тысяч осталось на месте и с повторным запуском скрипта они не удаляются.
Есть ли более простой способ взять и удалить всю информацию об XML из документа? Или это мой скрипт что-то делает не так?
Прислали каталог в InDesign на почти 1000 страниц одним файлом, задача - подготовить его к переводу.
По требованию заказчика на этом этапе нужно удалить из файла всю информацию о структуре (XML), но оставить весь контент Индизайна на месте.
В файле хранится много элементов структуры, порядка 25000 согласно данным скрипта.
Подготовил скрипт для удаления структуры (в конце поста) и запустил. В связи с тем, что часть тегов находится в заблокированном контенте, постоянно ловил вот такие ошибки:
Error String: Cannot delete elements that contain locked content, or are contained by locked content. Please unlock or check out the content and try again.
Переделал скрипт, чтобы он работал с
try ... catch ...
, на всякий случай разблокировал весь контент и все слои в документе.Запустил скрипт опять, подождал порядка 5 часов и обнаружил, что большую часть элементов скрипт удалил, но около 11 тысяч осталось на месте и с повторным запуском скрипта они не удаляются.
Есть ли более простой способ взять и удалить всю информацию об XML из документа? Или это мой скрипт что-то делает не так?
JavaScript:
#targetengine "Structure"
var timeDiff = {
setStartTime:function (){d = new Date(); time = d.getTime();},
getDiff:function (){d = new Date(); t = d.getTime() - time; time = d.getTime(); return t;}
};
timeDiff.setStartTime();
processDocument(app.activeDocument);
alert("Script execution time: " + timeDiff.getDiff() / 1000 + " seconds", "Script execution time");
function processDocument(doc){
var xe = doc.xmlElements.item(0).xmlElements;
alert(xe.length);
var w = new Window ("palette", "Прогресс операций: " + doc.name);
var pbar = w.add ("progressbar", undefined, 1, xe.length);
pbar.preferredSize = [600,20];
w.show();
for (i = xe.length-1; i >= 0 ; i--){
try {xe[i].untag(); xe[i].remove();} catch(e){}
if (i % 100 == 0) pbar.value = xe.length-i;
if (i % 2000 == 0) doc.save();
}
w.close();
}