Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

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

Vadim_PDF

Топикстартер
15 лет на форуме
Сообщения
1 648
Реакции
237
Есть скрипт ShowPDFOptions
Он вызывает окно опций - S.png
можно ли как-то задать в скрипте по умолчанию вставлять по GropBox? Что -бы лишний раз не клацать вкладку.
Возможно эта строка за что-то подобное отвечает?
Код:
		myDoc.selection[0].place(n.itemLink.filePath,1, undefined);

Посмотреть вложение ShowPDFOptions.rar
Сам скрипт
Код:
// ShowPDFoptions.js

// Version 1.2

// An InDesign CS2 Javascript

// Allows you to change the properties of an imported PDF
// such as crop, imported page, transparent background
// whilst keeping all the properties of the object.

// Install into your indesign/scripts directory

// Select a box containing an imported PDF and run this script
// by selecting it in the scripts palette.

//
// original CS varsion by www.luxlucid.com
// version for CS2 by Vlad Ossipov http://my.opera.com/took

myDoc = app.activeDocument;

if( myDoc.selection.length == 0 ){err("No selection.");}

if( myDoc.selection[0].constructor.name != "PDF" ){
//Test if it is a container
try {
	if (myDoc.selection[0].contentType == ContentType.graphicType){
		//Is first content PDF?
			try {
					if (myDoc.selection[0].allGraphics[0].constructor.name == "PDF"){
						placePDF(myDoc.selection[0].allGraphics[0]);
					} else {
						err("No PDF content embedded.");
					}
			} catch (e){
				err("No PDF content embedded.");
			}
	} else {
		err("Select an imported PDF.");
	}
} catch (e){
	err("Select an imported PDF.");
}


} else {
	placePDF(myDoc.selection[0]);
}

exit();


function placePDF(n){
	try {





		myDoc.selection[0].place(n.itemLink.filePath,1, undefined);


	} catch (e){
		err("Unknown error!");
	}
}



function err(e){
	alert(e);
	exit();
}
 
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

Да, эту строку надо заменить на две:
Код:
app.pdfPlacePreferences.pdfCrop = PDFCrop.CROP_PDF;
myDoc.selection[0].place(n.itemLink.filePath,1, undefined);
Если хотите вообще отключить окно импорта, то надо вместо единицы поставить ноль:
Код:
myDoc.selection[0].place(n.itemLink.filePath,[B]0[/B], undefined);

Вот полный список вариантов для первой строки (CS5):
PDFCrop.CROP_ART
PDFCrop.CROP_PDF
PDFCrop.CROP_TRIM
PDFCrop.CROP_BLEED
PDFCrop.CROP_MEDIA
PDFCrop.CROP_CONTENT_VISIBLE_LAYERS
PDFCrop.CROP_CONTENT_ALL_LAYERS
 
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

Тут есть проблемка...
Есть 2 вида PDF
В одном вызывается по умолчанию Grop, в другом нет :(
Проблема я так понимаю в PDF - но что именно?
Возможно если в pdf прописаны не все боксы - то он сбрасывает настройки на BoundingBox

P.S. Перебил PitStop-ом все боксы (кроме Art, он в недоступен в PitStop-е) - история та-же.
Я так понимаю вся загвоздка в том, что скрипт обращается к свойствам pdf, не находит первый по списку ArtBox и сбрасывает настройки на BoundingBox
 

Вложения

  • 111.png
    111.png
    82.1 КБ · Просм.: 585
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

По логике не должен сбрасывать. Crop на скрине активен. К ArtBox скрипт никаким боком не обращается. И ладно бы обращался к неактивной настройке, тогда можно было бы объяснить, а так...
 
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

А нельзя ли его "надурить" установив PDFCrop.CROP_ART перед началом выполнения
типа set PDFCrop.CROP_ART= 1000x1000 -(сорри за катастрофическое незнание программирования)

Или (если это будет проще) - просто создать аналогичный скрипт который не вызывает окна всех опций, а только номера страниц. И при вставке оставляет все опции (Боксы и TransparenBackground)
 
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

только номера страниц
Пробуйте. Вроде так (изменения выделил жирным):
Код:
// ShowPDFoptions.js

// Version 1.2

// An InDesign CS2 Javascript

// Allows you to change the properties of an imported PDF
// such as crop, imported page, transparent background
// whilst keeping all the properties of the object.

// Install into your indesign/scripts directory

// Select a box containing an imported PDF and run this script
// by selecting it in the scripts palette.

//
// original CS varsion by www.luxlucid.com
// version for CS2 by Vlad Ossipov http://my.opera.com/took

myDoc = app.activeDocument;

if( myDoc.selection.length == 0 ){err("No selection.");}

if( myDoc.selection[0].constructor.name != "PDF" ){
//Test if it is a container
try {
	if (myDoc.selection[0].contentType == ContentType.graphicType){
		//Is first content PDF?
			try {
					if (myDoc.selection[0].allGraphics[0].constructor.name == "PDF"){
						[B]var myPageNum = prompt("Place PDF Page Number:");[/B]
						placePDF(myDoc.selection[0].allGraphics[0][B],Number(myPageNum)[/B]);
					} else {
						err("No PDF content embedded.");
					}
			} catch (e){
				err("No PDF content embedded.");
			}
	} else {
		err("Select an imported PDF.");
	}
} catch (e){
	err("Select an imported PDF.");
}


} else {
	placePDF(myDoc.selection[0]);
}

exit();


function placePDF(n[B],pnum[/B]){
	try {




		[B]try{app.pdfPlacePreferences.pdfCrop = n.pdfAttributes.pdfCrop;}catch(e){alert("PDFCrop!!!");}
		try{app.pdfPlacePreferences.transparentBackground = n.pdfAttributes.transparentBackground;}catch(e){alert("transparent!!!");}
		app.pdfPlacePreferences.pageNumber = pnum;[/B]
		myDoc.selection[0].place(n.itemLink.filePath,[B]0[/B], undefined);


	} catch (e){
		err("Unknown error!");
	}
}



function err(e){
	alert(e);
	exit();
}
 
Ответ: Сменить в скрипте выбор по умолчанию (ShowPDFOptions.jsx)

Конгениально! Вы избавили меня от кучи мучений. Порой приходится вставлять на 1 страницу верстки разные страницы pdf. Я забил на Ctrl+F1 этот скрипт и теперь действий стало в 3 раза меньше!
Спасибо огромное!
 
Статус
Закрыто для дальнейших ответов.