Отцы!! Напишите пжалста простенький скрип

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

Bop4yH78

Участник
Топикстартер
Сообщения
3
Реакции
0
Суть скрипта в том в том, чтобы он пробежавшись по тексту не меняя стили убрал атрибут Underline у всех прописных и строчных букв, у которых есть элементы, перекрывающие линию Underline.

Пример, чтобы было понятнее:

ДО: пример ПОСЛЕ: пример


Заранее спасибо!
 
Ответ: Отцы!! Напишите пжалста простенький скрип


Не по теме:
Подчёркивание — далеко не лучший способ выделения. Лучше выделять жирным, курсивом, жирным курсивом, в крайнем случае другой гарнитурой (например, основной текст с засечками, а выделение — без засечек).
 
Ответ: Отцы!! Напишите пжалста простенький скрип

PHP:
var iniReplaceString = "ДЦЩдруфцщ,";

with (app) {
	try {
		var myDoc = activeDocument;
	} catch (error) {
		alert("Нет открытых документов!");
		exit();
	}
	try {
		var myStory = selection[0].parentStory;
	} catch (error) {
		alert("Нет выбранного текста!");
		exit();		
	}
	findPreferences = null;
	changePreferences = null;
	findPreferences.underline = true;
	changePreferences.underline = false;
	for (myCounter = 0; myCounter < iniReplaceString.length; myCounter++) {
		myStory.search(iniReplaceString[myCounter], false, true, iniReplaceString[myCounter]);
	}
	findPreferences = null;
	changePreferences = null;	
}
Для добавления-удаления символов, подлежащих земене, редактируем значение переменной iniReplaceString. Заинтересованных прошу заметить, что в данном случае со строкой можно работать так же, как с массивом. что очень удобно при переборе единичных символов.

Скачать файл в виде jsx скрипта.
 

Вложения

Ответ: Отцы!! Напишите пжалста простенький скрип

1) "Я не читал, но осуждаю" (цитата из российского прошлого).
На мой взгляд, уж лучше оставить подчёркивание "как оно есть", чем такое некрасивое "неподчёркивание" букв "р" и "ц" в середине слова (линия с одной стороны буквы доходит до "элемента, перекрывающего линию Underline", а сдругой стороны отстоит от этого элемента на ширину буквы).

2) Огромное спасибо Oleg Butrin и многим другим, которые откликаются на просьбы о помощи людей, которые или вообще не пишут скрипты, или только начинают их писать.
 
Ответ: Отцы!! Напишите пжалста простенький скрип

Все замечательно работает! Но я совсем забыл упомянуть и о латинских подобных символах ((

Я бы и сам подправил, но понятия не имею как код превратить в JSX!
Вообще было бы здорово если бы были какие-либо настройки, в которых можно было бы вбить все символы с которыми надо работать. Ну а в дальнейшем можно расширить скрипт еще и тем какие именно операции надо делать (от подчеркивания, курсива, болда и тп. до замены стиля на другой и замены шрифта на другой)


Еще раз горомное спасибо, хза то что так быстро реагируете..
 
Ответ: Отцы!! Напишите пжалста простенький скрип

Нужно скачать файл, прикрепленный к сообщению, распаковать его и открыть для редактирования в любом текстовом редакторе. Там уж карты в руки - что надо, то и пишем.
 
Ответ: Отцы!! Напишите пжалста простенький скрип

Спасибо!
 
Ответ: Отцы!! Напишите пжалста простенький скрип


Не по теме:
А тонкая белая обводка буквам не спасет? К сожалению нет Индизайна под рукой, проверить, перекрывает обводка подчеркивание или нет.

Дополнено: Проверил. ИМХО белая обводка дает намного лучший результат!

 
Ответ: Отцы!! Напишите пжалста простенький скрип

Don Pedro сказал(а):

Не по теме:
ИМХО белая обводка дает намного лучший результат!

я тоже так думаю. Если кто сможет так подправить имеющийся скриптик, цены ему не будет! Оптимальна обводка порядка 0,5 pt для текста 10-11 pt
 
Ответ: Отцы!! Напишите пжалста простенький скрип

Вадиk сказал(а):
я тоже так думаю. Если кто сможет так подправить имеющийся скриптик, цены ему не будет! Оптимальна обводка порядка 0,5 pt для текста 10-11 pt
Зачем скрипт? Character Style вам нужен.
 
Ответ: Отцы!! Напишите пжалста простенький скрип

Вадиk сказал(а):
я тоже так думаю. Если кто сможет так подправить имеющийся скриптик, цены ему не будет! Оптимальна обводка порядка 0,5 pt для текста 10-11 pt

Тетенька, дайте воды, а то так есть хочется, прямо переночевать негде...

:)

Ловите щастье свое...

PHP:
var iniReplaceString = "ДЦЩдруфцщ,";

function smartW (mySize) {
	mySize = Number(mySize);
	return (Math.floor(mySize*10)/2)/120;
}

with (app) {
	try {
		var myDoc = activeDocument;
	} catch (error) {
		alert("Нет открытых документов!");
		exit();
	}
	try {
		var myStory = selection[0].parentStory;
	} catch (error) {
		alert("Нет выбранного текста!");
		exit();		
	}
	findPreferences = null;
	changePreferences = null;
	findPreferences.underline = true;
	changePreferences.underline = false;
	for (myCounter = 0; myCounter < iniReplaceString.length; myCounter++) {
		var myArray = myStory.search(iniReplaceString[myCounter], false, true);
		myArray.reverse();
		for (var objCounter = 0; objCounter < myArray.length; objCounter++) {
			with (myArray[objCounter]) {
				strokeColor = "Paper";
				strokeTint = 100;
				strokeWeight = smartW(pointSize);
			}
		}
	}
	findPreferences = null;
	changePreferences = null;	
}

Учите, блин, матчасть!
 

Вложения

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