- Сообщения
- 17 528
- Реакции
- 7 929
Скорее у Вас не стоит тот шрифт, где он набран "в той раскладке". Или он стоит тот, но он всё же не тот (это же пейджмейкер )что это текст как бы набранный не в той раскладке.
Скорее у Вас не стоит тот шрифт, где он набран "в той раскладке". Или он стоит тот, но он всё же не тот (это же пейджмейкер )что это текст как бы набранный не в той раскладке.
Штирлиц (программа) — Википедияне привычная Windows-раскладка, а чуточку иная, потому что некоторые буковки путаются
Вы думаете там полный коллект публикации со всеми оригинальными шрифтами?те самые
Как я понял файл на Маке сделан, наверное под кустарно русифицированной Mac OS 7/8/9. 98 не поможет.У Вас точно VM с Windows 98?
Достаточно классических шрифтов чтобы понять. Я так со своим же PDF'ом воевал, открывался в иллюстраторе с аналогичным текстом. Подлянка была в том, что вьюер показывал нормально, а после пропускания через вёрстку в ID Mac OS X получался тот же бардак.полный коллект публикации со всеми оригинальными шрифтами?
Ну на это какбэ намекает кодировка EN LayoutВидимо здесь использовался шрифт с кириллицей на месте латинской группы.
под кустарно русифицированной Mac OS 7/8/9
var to_String = "юйцукенгшщзхъфывапролджэёячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБ,э\"\":—"
var from_String = "/qwertyuiop[]asdfghjkl;’\\zxcvbnm,nQWERTYUIOP{}ASDFGHJKL:«|ZXCVBNM<>‘ÇÈ%Ñ"
var AD = app.activeDocument;
var all_Page_Items = AD.textFrames;
var itemsCount = all_Page_Items.length;
if (itemsCount>0){
for ( i = 0; i < itemsCount; i++ ) {
var theItem = all_Page_Items[i];
theKind = "TextFrame";
if (theKind=="TextFrame"){
theString="";
theString = theItem.contents;
theLength = theString.length;
newString = "";
if (theLength>0){
for (j = 0; j < theLength; j++){
thenewChar = theString[j];
newChar=theString[j];
findChar=true
for (k=0; k< from_String.length;k++){
thisChar = from_String[k];
if ((thisChar==newChar) && (findChar)){
thenewChar=to_String[k];
findChar=false
} // theChar = newChar
} // for k < from_String.length
newString = newString + thenewChar;
} // for j < theLength
if (theString != newString)
theItem.contents = newString;
} // theLength >0
} // Kind = TextFrame
} // for itemsCount
} // itemsCount > 0
Для надёжности. При глобальной замене нет никакой гарантии, что новый символ не окажется в списке заменяемых позже. Для русских букв не актуально, а вот знаки препинания здесь тоже под замену идут, как минимум двоеточие и запятая. Индивидуальная замена позволяет не обращать внимания на порядок замены.зачем каждый символ индивидуально менять
Для надёжности. При глобальной замене нет никакой гарантии, что новый символ не окажется в списке заменяемых позже. Для русских букв не актуально, а вот знаки препинания здесь тоже под замену идут, как минимум двоеточие и запятая. Индивидуальная замена позволяет не обращать внимания на порядок замены.
Вдобавок, лично я не уверен, что 72 глобальные замены будут работать быстрее одной посимвольной замены
var changes = {
"a":"b",
"c":"d"
}
var srcString = "ac";
for(var i=0;i<srcString.length;i++) {
var currChar = srcString[i];
if(changes[currChar]) srcString[i]=changes[currChar];
}
Cходу не заметил, я думал там как раз словарем и реализовано. Тогда, согласен, идиотизмих тут не одна, а столько, сколько символов в тексте, еще и с перебором вариантов каждый раз
Раскрою страшную тайну - глобальная замена работает точно так же, как и посимвольная здесь. Поиск последовательно просматривает весь текст на совпадение символа и заменяет если найдено. Не так тупо как у меня, конечно, но мои познания в JavaScript и сейчас близки к нулю, а этот скрипт я писал ещё при переходе с классической системы Mac OS на Mac OS X, причём для иллюстратора. Как раз для решения проблемы разных кодировок в разных системах.их тут не одна, а столько, сколько символов в тексте
проще использовать словари, на худой конец indexOf()
Раскрою страшную тайну - глобальная замена работает точно так же, как и посимвольная здесь. Поиск последовательно просматривает весь текст на совпадение символа и заменяет если найдено. Не так тупо как у меня, конечно, но мои познания в JavaScript и сейчас близки к нулю, а этот скрипт я писал ещё при переходе с классической системы Mac OS на Mac OS X, причём для иллюстратора. Как раз для решения проблемы разных кодировок в разных системах.
Зато пару строк заменил и пользуйся.
var to_String = "юйцукенгшщзхъфывапролджэёячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБ,э\"\":—"
var from_String = "/qwertyuiop[]asdfghjkl;’\\zxcvbnm,nQWERTYUIOP{}ASDFGHJKL:«|ZXCVBNM<>‘ÇÈ%Ñ"
var AD = app.activeDocument;
var all_Page_Items = AD.textFrames;
var itemsCount = all_Page_Items.length;
for ( i = 0; i < itemsCount; i++ ) {
var theItem = all_Page_Items[i];
var theString = theItem.contents;
var theLength = theString.length;
var newString = "";
for (j = 0; j < theLength; j++){
newChar=theString[j];
var charIndex = from_String.indexOf(newChar);
if(charIndex!=-1)
newString+=to_String[charIndex];
else newString+=newChar;
}
if (theString != newString)
theItem.contents = newString;
}