Зум в пиксельный размер

Статус
Закрыто для дальнейших ответов.

Zest

Забанен
Топикстартер
Сообщения
2 967
Реакции
70
Может быть в ЦС3 или 4 наконец-то реализовано открытие документов в заданном размере окна - как это обычно делается в многооконных интерфейсах, где пользователь определяет размер одного окна и все документы затем открываются в этом размере. Но в ЦС2 ничего такого нет.

Кроме того команда Arrange > Match Zoom масштабирует отображение в процентах от указанного и не уменьшает окна. То есть лажа полная.

Я написал скрипт который подгоняет размер окна к заданному в пикселях и попробовал его привязать к событию Open - тоже получилась лажа: ФШ сначала открывает все указанные в списке файлы, а затем обрабатывает их по-очереди указанным скриптом, который в силу органичений управления отображением из скриптов получился тоже циклический.

Поэтому лучше его связать с шорткатом и вызывать самостоятельно в случае необходимости. То есть когда вы открыли пачку файлов и они забили раскрывшись максимально весь рабочий стол так, что хрен поймешь где что.

Код:
if (documents.length == 0) {
	alert("No document"); 
} else {

	// порог размера экранного отображения в пикселях по вертикали
	const maxh = 500; 

	var our = app.preferences.rulerUnits;
	app.preferences.rulerUnits = Units.PIXELS;
	var acd = app.activeDocument;

	for (var i = 0; i < documents.length; i++) {
		var doc = documents[i];
		var h = doc.height.value;
		app.activeDocument = doc;
		// отображаем пиксел в пиксел 
		imageView('ActP'); 
		// уменьшаем отображение
		while (h > maxh) {
			imageView('ZmOt');
			h = Math.floor(h/1.5);
		}
	}

	app.preferences.rulerUnits = our;
	app.activeDocument = acd;
}

function imageView (view) 
{ 
var id73 = charIDToTypeID( "slct" ); 
    var desc17 = new ActionDescriptor(); 
    var id74 = charIDToTypeID( "null" ); 
        var ref13 = new ActionReference(); 
        var id75 = charIDToTypeID( "Mn  " ); 
        var id76 = charIDToTypeID( "MnIt" ); 
        var id77 = charIDToTypeID( view ); 
        ref13.putEnumerated( id75, id76, id77 ); 
    desc17.putReference( id74, ref13 ); 
executeAction( id73, desc17, DialogModes.NO ); 
} 
	
//imageView('FtOn'); // equivalent to Ctrl0 
//imageView('ZmIn'); // zoom in 
//imageView('ZmOt'); // zoom out

Внизу закомментированы вызовы функции imageView с аргументами которые можно использовать для указанных в комментах целей.
 

Zest

Забанен
Топикстартер
Сообщения
2 967
Реакции
70
Ответ: Зум в пиксельный размер

Главное: чтобы уменьшались размеры окна вместе с отображением - в преференсах надо включить опцию Zoom Resize Windows.

Обычно ее отключают и при необходимости одновременно изменять размер окна прижимают Alt: Alt+Ctrl++, или Alt+Ctrl+-. Если ее включить, то будет наоборот: окно будет изменяться вместе с отображением, а при необходимости изменить только отображение надо прижимать Alt.

Можно прямо в скрипт добавить временное включение этой опции:

Код:
if (documents.length == 0) {
	alert("No document"); 
} else {

	// порог размера экранного отображения в пикселях по вертикали
	const maxh = 500; 

	var our = app.preferences.rulerUnits;
	app.preferences.rulerUnits = Units.PIXELS;
	var kbdz = app.preferences.keyboardZoomResizesWindows;
	app.preferences.keyboardZoomResizesWindows = true;
	var acd = app.activeDocument;

	for (var i = 0; i < documents.length; i++) {
		var doc = documents[i];
		var h = doc.height.value;
		app.activeDocument = doc;
		// отображаем пиксел в пиксел 
		imageView('ActP'); 
		// уменьшаем отображение
		while (h > maxh) {
			imageView('ZmOt');
			h = Math.floor(h/1.5);
		}
	}

	app.preferences.rulerUnits = our;
	app.preferences.keyboardZoomResizesWindows = kbdz;
	app.activeDocument = acd;
}

function imageView (view) 
{ 
var id73 = charIDToTypeID( "slct" ); 
    var desc17 = new ActionDescriptor(); 
    var id74 = charIDToTypeID( "null" ); 
        var ref13 = new ActionReference(); 
        var id75 = charIDToTypeID( "Mn  " ); 
        var id76 = charIDToTypeID( "MnIt" ); 
        var id77 = charIDToTypeID( view ); 
        ref13.putEnumerated( id75, id76, id77 ); 
    desc17.putReference( id74, ref13 ); 
executeAction( id73, desc17, DialogModes.NO ); 
} 
	
//imageView('FtOn'); // equivalent to Ctrl0 
//imageView('ZmIn'); // zoom in 
//imageView('ZmOt'); // zoom out
 

denisgrim

Участник
Сообщения
1 171
Реакции
1
Ответ: Зум в пиксельный размер

в цс4 задолбали табы :+(( игра с преференсами не приводит ни к чему путнему. Вернуть бы старое поведение, совсем без табов...
 

kkk

Участник
Сообщения
38
Реакции
0
Ответ: Зум в пиксельный размер

denisgrim сказал(а):
в цс4 задолбали табы :+(( игра с преференсами не приводит ни к чему путнему. Вернуть бы старое поведение, совсем без табов...
Странно. В Настройках на вкладке Интерфейс снял одну галку (Открывать документы как табы) и все - никаких табов (нужно перегрузиться). Но ведь неудобно же :)
 

denisgrim

Участник
Сообщения
1 171
Реакции
1
Ответ: Зум в пиксельный размер

похоже у меня просто глючная пиратка. У меня каждый раз при запуске открывается лицензионное соглашение, которое надо подтверждать. И именно настройка табов не работает (хотя состояние галочки запоминает). Впрочем, обсуждение вареза тут запрещено... Наверное, стоит просто поставить другую пиратку.
 
Статус
Закрыто для дальнейших ответов.