[ID CS4-CS6] Конвертировать старую публикацию PageMaker в Indesign

George

I wish I was a monster you think I am
15 лет на форуме
Сообщения
17 323
Реакции
7 870

Gadalka

R.I.P.
Сообщения
2 530
Реакции
868

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
1996 год это Mac OS 7. Если файл открывается PageMaker'ом то можно попробовать подгрузить те самые ATM шрифты и открыть. Может помочь.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 865
Реакции
3 453

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
полный коллект публикации со всеми оригинальными шрифтами?
Достаточно классических шрифтов чтобы понять. Я так со своим же PDF'ом воевал, открывался в иллюстраторе с аналогичным текстом. Подлянка была в том, что вьюер показывал нормально, а после пропускания через вёрстку в ID Mac OS X получался тот же бардак.
Заменил шрифт на классический и всё прошло. Шанс во всяком случае есть.
 

xRaider

12 лет на форуме
Сообщения
76
Реакции
60
Открылся в Win CS3. Видимо здесь использовался шрифт с кириллицей на месте латинской группы. Это становится понятно, если предположить что справа написано "Жизнь Мартина Лютера" ( ":bpym Vfhnbyf K/nthf" ). Нужно либо искать такие шрифты, либо перекодировать текст.
 

Вложения

  • 2018-01-17_17-40-56.png
    2018-01-17_17-40-56.png
    28.2 КБ · Просм.: 796

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
Примерно так, но я имею дело с текстом, вырванном из исходного документа как из текстового. Буква "ю" где-то гуляет, но её нет и в исходном "тексте".
Прошу гуру от JavaScript ногами не бить, я больше по AppleScript. Надеюсь поможете ТС со строками to_String и from_String, заодно оптимизировав то, что сделано через пятую точку, и будет человеку счастье. Набросок работает со всем текстом в документе!
Снимок экрана 2018-01-18 в 20.43.46.png

Код:
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
 
  • Спасибо
Реакции: Валера1966 и LeonidB

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а зачем каждый символ индивидуально менять, быстрее прогнать 72 глобальные замены по всему документу. через findchangebylist, например.
 

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
зачем каждый символ индивидуально менять
Для надёжности. При глобальной замене нет никакой гарантии, что новый символ не окажется в списке заменяемых позже. Для русских букв не актуально, а вот знаки препинания здесь тоже под замену идут, как минимум двоеточие и запятая. Индивидуальная замена позволяет не обращать внимания на порядок замены.
 
  • Спасибо
Реакции: LeonidB

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
Вдобавок, лично я не уверен, что 72 глобальные замены будут работать быстрее одной посимвольной замены 'hmmm'
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Для надёжности. При глобальной замене нет никакой гарантии, что новый символ не окажется в списке заменяемых позже. Для русских букв не актуально, а вот знаки препинания здесь тоже под замену идут, как минимум двоеточие и запятая. Индивидуальная замена позволяет не обращать внимания на порядок замены.

а, понял. стилем можно пометить. ну и порядок можно выставить, один раз же на всю жизнь :)

Вдобавок, лично я не уверен, что 72 глобальные замены будут работать быстрее одной посимвольной замены 'hmmm'

одной? их тут не одна, а столько, сколько символов в тексте, еще и с перебором вариантов каждый раз


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


Код:
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];
}
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848
их тут не одна, а столько, сколько символов в тексте, еще и с перебором вариантов каждый раз
Cходу не заметил, я думал там как раз словарем и реализовано. Тогда, согласен, идиотизм
 

apg_777

15 лет на форуме
Сообщения
278
Реакции
81
их тут не одна, а столько, сколько символов в тексте
Раскрою страшную тайну - глобальная замена работает точно так же, как и посимвольная здесь. Поиск последовательно просматривает весь текст на совпадение символа и заменяет если найдено. Не так тупо как у меня, конечно, но мои познания в JavaScript и сейчас близки к нулю, а этот скрипт я писал ещё при переходе с классической системы Mac OS на Mac OS X, причём для иллюстратора. Как раз для решения проблемы разных кодировок в разных системах.
Зато пару строк заменил и пользуйся.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 209
Реакции
10 848

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Раскрою страшную тайну - глобальная замена работает точно так же, как и посимвольная здесь. Поиск последовательно просматривает весь текст на совпадение символа и заменяет если найдено. Не так тупо как у меня, конечно, но мои познания в JavaScript и сейчас близки к нулю, а этот скрипт я писал ещё при переходе с классической системы Mac OS на Mac OS X, причём для иллюстратора. Как раз для решения проблемы разных кодировок в разных системах.
Зато пару строк заменил и пользуйся.

одно дело когда он это внутри делает одним обращением из скрипта, а когда их из скрипта тысячи - это займет вполне ощутимое время
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну как-то так если даже. на одном фрейме в одну страницу уже скорость в 6 раз больше )

Код:
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;

}
 
  • Спасибо
Реакции: Валера1966