Печать всех страниц публикации на принтер?

  • Автор темы Автор темы Boyler
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Boyler

Участник
Топикстартер
Сообщения
50
Реакции
0
Можно я распечатаю? :cool:
Сделал маленький скрипт для печати публикации A3-го формата на принтер А4-го формата:

Код:
var myDocument = app.activeDocument; 

   with(myDocument){ 
   zeroPoint = new Array ("18mm", "15mm"); 
   print(printDialog = false, using = "Laser"); 
   } 
   with(myDocument){ 
   zeroPoint = new Array ("18mm", "208mm"); 
   print(printDialog = false, using = "Laser"); 
   } 

alert("Готово!"); 
exit();

но данный скрипт оказался неудобен, т.к. если в публикации более чем одна страница, то печатается только первая в большенстве случаев (зависит от предыдущих настроек печати).

Вот и появилась мысля переделать скриптец дабы он печатал все страницы в публикации:

Код:
var myDocument = app.activeDocument; 
//просто добавил цыкл: 
for (myCounter = 0; myCounter < myDocument.pages.length; myCounter++){ 

   with(myDocument.pages.items(myCounter)){ 
   zeroPoint = new Array ("18mm", "15mm"); 
   print(printDialog = false, using = "Laser"); 
   } 
   with(myDocument.pages.items(myCounter)){ 
   zeroPoint = new Array ("18mm", "208mm"); 
   print(printDialog = false, using = "Laser"); 
   } 
} 
alert("Готово"); 
exit();

но в цикле print работать отказывается, говорит "print(printDialog = false, using = "Laser"); - is not a function"

Помогите исправить! Нутром чую где проблема, но исправить сам не всилах...

И еще вопрос как поменять настройки документа из portrait на landscape с помощью кода?
Примером если можно!
Заранее спасибо!
 
Ответ: Печать всех страниц публикации на принтер?

with (app) {
var myDocument = app.activeDocument;

myDocument.printPreferences.pageRange = 1886547553;
// то есть _все_ страницы

myDocument.printPreferences.printPageOrientation = PrintPageOrientation.landscape;
// положили страничку на бок :)

zeroPoint = new Array ("18mm", "15mm");
print(printDialog = false, using = "Laser");

zeroPoint = new Array ("18mm", "208mm");
print(printDialog = false, using = "Laser");
}
alert("Готово");
exit();

Understand? :)
 
Ответ: Печать всех страниц публикации на принтер?

Yes, understood!
Долго я смотрел на эту строчку в "Мультипринте":
vbatushev сказал(а):
myDocument.printPreferences.pageRange = 1886547553;
// то есть _все_ страницы
Спасибо!

Только мне надо поменять настройки документа, а не печати!
Допустим хочется сделать проверку "если документ больше чем А3 формат (или pageHeight > "279,4 mm" и pageWidth > "215,9 mm") то делать так:
Код:
	zeroPoint = new Array ("18mm", "15.5mm");
	print(printDialog = false, using = "Laser");

	zeroPoint = new Array ("18mm", "208mm");
	print(printDialog = false, using = "Laser");

	zeroPoint = new Array ("291mm", "15.5mm");
	print(printDialog = false, using = "Laser");

	zeroPoint = new Array ("291mm", "208mm");
	print(printDialog = false, using = "Laser");
т.е. печатаем А2 формат.

Для пробы пробовал поменять настройки, ориентацию документа:
myDocument.documentPreference.pageOrientation = PageOrientation.landscape;
Не получилось! :(
 
Ответ: Печать всех страниц публикации на принтер?

Boyler сказал(а):
Для пробы пробовал поменять настройки, ориентацию документа:
myDocument.documentPreference.pageOrientation = PageOrientation.landscape;
Не получилось! :(

Если писать PageOrientation, то ничего не получится. Можно попытаться pageOrientation.

в цикле print работать отказывается, говорит "print(printDialog = false, using = "Laser"); - is not a function"

Естественно, если запускать print от объекта app. Пользовать надо myDocument.print().
 
Ответ: Печать всех страниц публикации на принтер?

Сам понимаешь, что вариант "PageOrientation.landscape" написан в доке... И как после таких ляпов на адобов не злиться :mad:
Boyler (как я не люблю ники, кто бы знал), а у тебя дока есть или ты так наобум пишешь? :)
 
Ответ: Печать всех страниц публикации на принтер?

При попытке сделать это:
Код:
with (app){
	var myDocument = app.activeDocument;
	myDocument.documentPreference.pageOrientation = PageOrientation.landscape;
}
говорит - "undefined is not an object"

При попытке сделать это:
Код:
with (app){
	var myDocument = app.activeDocument;
	myDocument.documentPreference.pageOrientation = pageOrientation.landscape;
}
говорит - "pageOrientation is undefined"

Boyler (как я не люблю ники, кто бы знал), а у тебя дока есть или ты так наобум пишешь?
Дока есть, а зовут меня Дмитрий!
 
Ответ: Печать всех страниц публикации на принтер?

Boyler сказал(а):
При попытке сделать это:
Код:
with (app){
	var myDocument = app.activeDocument;
	myDocument.documentPreference.pageOrientation = PageOrientation.landscape;
}
говорит - "undefined is not an object"

Ну естественно!
documentPreferences.pageOrientation = 2003395685;
Пишите числа, без новомодных штучек.
 
Ответ: Печать всех страниц публикации на принтер?

Oleg Butrin сказал(а):
Ну естественно!
documentPreferences.pageOrientation = 2003395685;
Пишите числа, без новомодных штучек.

Sorry! Но в мануале глава называется "documentPreference", от туда сие и повзаимствовал!

Большое всем спасибо! Все работает!
 
Ответ: Печать всех страниц публикации на принтер?

Boyler сказал(а):
Sorry! Но в мануале глава называется "documentPreference", от туда сие и повзаимствовал!

Большое всем спасибо! Все работает!

Мануал смотреть нужно с разбором. Его нехорошие люди писали. В свойствах document есть четкое и ясное описание: documentPreferences.
 
Ответ: Печать всех страниц публикации на принтер?

Еще раз спасибо!

Ps: Че-то рожа мне моя не нравиться сегодня... ум не проглядывается... аватар сменить надо...размеры маловаты! А форум ваш мне больше нравился...расцветкой.
 
Ответ: Печать всех страниц публикации на принтер?

Извините за беспокойство! Еще одна проблема.
Допустим хочется сделать проверку "если документ больше чем А3 формат...
В настройках публикации A3 формат:
  • высота - 420 mm
  • ширина - 297 mm.
При проверке скриптом:
Код:
var myPageHeight = myDocument.documentPreferences.pageHeight;
var myPageWidth = myDocument.documentPreferences.pageWidth;

alert(myPageHeight);
alert(myPageWidth);
получается:
  • myPageHeight = 419.666666666167
  • myPageWidth = 296.9999999999461
и при условии, скажем:
Код:
	if (myPageWidth == "296.999999999461 mm"){
		alert("A3");
	}
ничего не происходит! :mad:

Как можно проверить формат документа? Или может эти числа округлять как-то надо?
 
Ответ: Печать всех страниц публикации на принтер?

Код:
if ((myPageWidth > "296 mm")&&(myPageWidth < "297 mm")){  
   alert("A3");
}
 
Ответ: Печать всех страниц публикации на принтер?

Спасибо!
Не даром говорят что у програмеров особое мышление.
Я бы до этого не додумался... :confused:
 
Ответ: Печать всех страниц публикации на принтер?

vbatushev сказал(а):
Для скриптов фотошопа такой опции нет :( Может все же есть какая-то возможность печатать из фотошопа сразу без диалога печати?

Сори за оффтоп! Но ветки по скриптам фотошопа здесь нет...
 
Ответ: Печать всех страниц публикации на принтер?

Всем гуру данного форума большой привет!

А чем тебя диалог неустраивает? Вполне удобен!
Я-то пыхтел потому, что у меня принтер А4 формата а публикация на А3. Хотя нет ничего невозможного, флаг тебе в руки!

Удачи!
 
Ответ: Печать всех страниц публикации на принтер?

Boyler сказал(а):
А чем тебя диалог неустраивает?
Удачи!
Дык надо отправить на печать пару сотен файлов! Поэтому и скрипт нужен, поэтому и диалог не нужен :) Вобщем придется в inDesigne печатать, хотя печатать tif'ы логичней было бы из шопа...
 
Статус
Закрыто для дальнейших ответов.