[AI CS4-CS6] Размещение линков многостраничного PDF

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Нет, это готовая программа в сообщении #11.
Вроде из-за ширины окна.
Я убрал пробелы перед и после":".
Посмотрю.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А где там задается номер страницы? В диалоговом окне нет поля ввода
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Кнопкой "+1". По порядку...
Поэтому скрипт такой маленький, что ничего лишнего.

Ну да, пару пробелов убрал - теперь помещается 2 разряда.
Мне больше не надо.
Я и говорю, конкретно для моей задачи подходит более-менее.
Когда нужно быстро накидать все страницы не очень большого (до десятка страниц) pdf на монтажку. Чтобы заказчик подписал готовое изделие (например, инструкция-гармошка, 6 страниц). В макете они идут постранично. Не люблю делать макет в виде "готового спуска". Если бы названия прилинкованного pdf-файла не менялись, то можно было бы вообще не заморачиваться. При изменении текста в оригинальном файле, на спуске для заказчика автоматом всё поменяется. Но мне приходится держать несколько версий макетов. А если для каждого еще и свой спуск делать - не хочу.
С этом скриптом все равно быстро получается.
А для сложных спусков свой софт есть.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Тогда можно сделать по другому. Записываете команду линкования PDF в экшн, затем берете за основу второй скрипт и вставляете туда вызов этого экшна:
Код:
var doc = app.activeDocument;
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
var pdfOptions = app.preferences.PDFFileOptions;
var firstPage = 1;
var lastPage = 10;
pdfFile = File.openDialog("Open Multi-page PDF", "*.pdf", false);
for (i= firstPage;i<lastPage;i++)
{
pdfOptions.pageToOpen = i;
doScript("Link one page PDF", "Set of link PDF");
};
Но меня терзают смутные сомнения, что в вашем CS5 функции doScript может и не быть. И сам экшн, возможно, придется напильником допиливать дабы страница в нем не перебивала скриптовую.
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Вы слишком высокого мнения о моих программерских способностях. Я не понял, как это сделать в натуре. Где у Вас там название экшена?
doScript("Link one page PDF", "Set of link PDF") - что здесь что?

ЗЫ. Пишет: doScript not a function
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Кэп подсказывает что "Set of link PDF" - имя сета, а "Link one page PDF" - имя нового экшна в сете ;)
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Не знаю Кэпа.
Сделал. Все равно error24: doScript not a function.
Наверное, doScript появился только в CS6.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Тогда в CS5, выходит, задача вообще не реализуемая
Хотя, нет, как говорит Камасутра, безвыходных положений не бывает
Можно, к примеру, из скрипта запускать какое нибудь pdftk, которое резало бы pdf на страницы и линковать каждую из этих страниц 'hmmm'
А можно скриптом генерировать экшн который потом руками запускать
Или сделать экшн который сперва запускал скрипт, генерирующий другой экшн, который бы, по его отработке, сам запускался из первого экшна '%)'
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Да, на форуме Адобы тоже предлагают (и не раз), делать из многостраничного pdf отдельные файлы, а затем уже их раскладывать.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Тут основная беда в том, что CS5 - уже страшный винтаж
В CS6 все таки главной проблемой меньше было бы
Но и тут выкрутиться можно
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
А самое главное, шлют дизайны в Кореле Х8 и Адобе 2017. А можно было бы сделать в любой версии абсолютно. Так как никаких новшеств никто (ну 99%) не использует лет 10 как.
А совместимость версий разрабы делать перестали (хотя могли бы)
 

egorus2010

Топикстартер
12 лет на форуме
Сообщения
1 520
Реакции
51
Вот, допиливаю.
Тестовый скрипт для размещения отдельных линков-страниц из pdf-файла

Принцип.
В Илле запускаем этот скрипт.
Копируем в буфер нужный PDF-файл.

В скрипте делаем, что хотим.
Желательно нажать reset, чтобы обнулить счетчик страниц.
Так как он помнит последнюю открытую и можно не обратить внимания, что номер не 1.

Затем или кликаем по "+" или устанавливаем номер страницы и кликаем "Set".
Затем просто мышкой в окне Илла и ctrl+V, и линк нужной страницы у вас на монтажке.

Только не знаю, как показать количество страниц в открываемом файле (так как он не открывается в привычном понимании, а вставляется из обмена).
У меня пока непонятная функция GetNumPages).

Поможете с ее реализацией?
Я жду совета, а не вопросов "Зачем это?"
Не потому что грубиян, а потому что объяснять долго, а вам это не понадобится.
Моё объяснение.
А скрипт, может, кому и пригодится...
 
Последнее редактирование:
  • Спасибо
Реакции: ~RA~

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
хм. вот это по идее должно работать при помещении. но не работает похоже

app.preferences.setIntegerPreference('plugin/PDFImport/PageNumber',i)

вообще, настройки можно находить в файле AIPrefs
How to set preferences in Illustrator
и менять вот этими get/set
 
Последнее редактирование:

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
А, так вот вы о чем!
Нет, тогда надо делать совершенно по другому, не факт что вообще получится такое странное
Ваша конструкция
Код:
pdfOptions.pageToOpen = i;
var thisPlacedItem = doc.placedItems.add();
thisPlacedItem.file = pdfFile;
и не должна работать по определению ибо pageToOpen как следует из названия,только для Open но никак не link
Тогда однозначно только


самое смешное вот:
Preferences.PDFFileOptions (Read Only)
Data Type: OpenOptionsPDF
Adobe Illustrator 21 Type Library
Options to use when opening or placing a PDF file.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Т.е. в доке заявлена как для open и link, но для последнего не работает?