[ID CC-CC2022] Экспорт выбранных текст. блоков в RTF

  • Автор темы Автор темы Dziglo
  • Дата начала Дата начала

Dziglo

Участник
Топикстартер
Сообщения
226
Реакции
1
Добрый день. Существует такой скрипт, как ExportAllStories. Он экспортирует все текстовые блоки из текущего файла Индизайна в заданную папку: каждый текстовый блок — в отдельную папку.
Подскажите пожалуйста, есть ли скрипты, которые экспортируют выделенные блоки в RTF (txt и т.п.) в один файл.
 
Код:
cur_obj = app.selection

function mdump(mdata,mpath){
    mfile = new File(mpath+'/'+'export_story.txt')
    mfile.open('w')
    mfile.write(mdata)
    mfile.close()
}

if (cur_obj.length != 0 && cur_obj !== undefined){
    obj_list = []
    for(var pi = 0; pi < cur_obj.length; pi++){
        if(cur_obj[pi].getElements()[0].constructor.name == 'TextFrame'){
            obj_list.push(cur_obj[pi].id)
        }
    }

    if(obj_list.length != 0){

        mfolder = Folder.selectDialog('folder')
        if(mfolder == null){exit()}
        
        doc = app.activeDocument
        rez = []
        for(var pi = 0; pi < obj_list.length; pi++){
            cur_mod = doc.pageItems.itemByID(obj_list[pi])
            rez.push(cur_mod.parentStory.contents)
        }

        mdump(rez.join('\n'),mfolder)
        alert('save story')
    }
}
 
Код:
cur_obj = app.selection

function mdump(mdata,mpath){
    mfile = new File(mpath+'/'+'export_story.txt')
    mfile.open('w')
    mfile.write(mdata)
    mfile.close()
}

if (cur_obj.length != 0 && cur_obj !== undefined){
    obj_list = []
    for(var pi = 0; pi < cur_obj.length; pi++){
        if(cur_obj[pi].getElements()[0].constructor.name == 'TextFrame'){
            obj_list.push(cur_obj[pi].id)
        }
    }

    if(obj_list.length != 0){

        mfolder = Folder.selectDialog('folder')
        if(mfolder == null){exit()}
       
        doc = app.activeDocument
        rez = []
        for(var pi = 0; pi < obj_list.length; pi++){
            cur_mod = doc.pageItems.itemByID(obj_list[pi])
            rez.push(cur_mod.parentStory.contents)
        }

        mdump(rez.join('\n'),mfolder)
        alert('save story')
    }
}
А вы не могли бы чуть подправить этот скрипт? Чтобы сохранялось не в txt, а в RTF, и чтобы в случае, если в той же папке уже есть файл с таким названием (export_story), то он бы не затирал старый файл, а сохранялся под именем напр. export_story1.
 
Чтобы сохранялось не в txt, а в RTF
Обратите внимание, в скрипте накапливается текстовое наполнение блоков (contents) а это значит, что RTF таким манером выгрузить нереально :(
 
  • Спасибо
Реакции: Dziglo
Обратите внимание, в скрипте накапливается текстовое наполнение блоков (contents) а это значит, что RTF таким манером выгрузить нереально :(
А переименовывать (а не затирать старый) возможно?
 
А переименовывать (а не затирать старый) возможно?
Например вместо
JavaScript:
mfile = new File(mpath+'/'+'export_story.txt')
Чтото типа

JavaScript:
while (true)
{
mfile = new File(mpath+'/'+'export_story'+
Math.floor(Math.random() * 100)+
'.txt');
if (!mfile.exists) break;
}
 
  • Спасибо
Реакции: Dziglo
Сдаётся мне, это шутка.
 
  • Спасибо
Реакции: Drawer