1

Тема: кракозябры при изменении шрифта gost type на любой другой

Здравствуйте,дорогие пользователи ворда. У меня возникла очень болезненная проблема. Скоро нужно защищать диплом,а проблемы со шрифтом.
И так..
Я получил готовый диплом написанный шрифтом gost type. А у нас в колледже этот шрифт не признают и принуждают изменять гост шрифт на times new romans.
Решил изменить гостовский шрифт и вот здесь начались проблемы.. После смены гост шрифта в некоторых документах от диплома на любой другой шрифт у меня появляються квадратики,в некоторых случаях кракозябры и т.п. Не знаю как изменять.. И ещё почему то с другими документами (.doc) которые идут с дипломом - нет проблем. Т.е в этих документах можно изменять шрифт и не появляються никакие квадратики.. Искал в интернете.. Говорят проблема в юникоде. Кто говорит написан на 97 ворде,а кто-то говорит решении нету,перепечатай.. Я думаю,что только здесь найду профессионалов которые помогут мне. Пожалуйста,очень нужно изменить шрифт.. В конце июня защита sad

PS: Я выложил документы с которыми возникают проблемы.
В перечисленных документах не возможно изменять шрифты:
- "1. Исходные данные-6.doc"
- "4. Охрана недр и окр. среды-10.doc"

А в этом документе можно изменять,все эти документы одно целое - просто разделены по главам:
- "2. Тех-технологический 43.doc"

Так же прикрепил шрифты гост которые у меня имеются.. Всё в одном архиве.

Спасибо заранее Вам большое.. Буду очень благодарен.

2

Re: кракозябры при изменении шрифта gost type на любой другой

Никто не ответит да?... Жаль..

3

Re: кракозябры при изменении шрифта gost type на любой другой

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

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

4

Re: кракозябры при изменении шрифта gost type на любой другой

Ой извините... я раньше прикреплял,почему то не сохранились

Post's attachments

диплом.rar 1.83 Мб, 15 скачиваний с 2012-06-13 

You don't have the permssions to download the attachments of this post.

5

Re: кракозябры при изменении шрифта gost type на любой другой

Уважаемый Фарид!
К сожалению, использованные вами шрифты совершенно не соответствуют стандартным шрифтам Times New Romans и др.
Пока для преобразования мне представляются возможными два способа, оба плохие:
1) преобразовать файлы в PDF и распознать их (распознавание происходит не очень хорошо);
2) сформировать специальный макрос, преобразующий "символ в символ" (наподобие такого  - http://wordexpert.ru/forum/viewtopic.php?id=1278) (это трудоемко и не уверен, что таким образом удастся корректно преобразовать формулы).
Может быть, коллеги смогут что-то добавить или преобразовать ваш текст как-то иначе?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

6

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:

Уважаемый Фарид!
К сожалению, использованные вами шрифты совершенно не соответствуют стандартным шрифтам Times New Romans и др.

Извините,не понял. Вы имеете виду те шрифты которые в папке "шрифты"  в прикрепленном архиве? Так эти шрифты гост,которые шли с дипломом. А в системе установлен стандартный шрифт times new romans

Alex_Gur пишет:

Пока для преобразования мне представляются возможными два способа, оба плохие:
1) преобразовать файлы в PDF и распознать их (распознавание происходит не очень хорошо);

Не подскажите,каким ПО это можно сделать.. Хотя бы преобразовать,чем перепечатать.. Ну в принципе если не будет вариантов, придется перепечатать..

Alex_Gur пишет:

2) сформировать специальный макрос, преобразующий "символ в символ" (наподобие такого  - http://wordexpert.ru/forum/viewtopic.php?id=1278) (это трудоемко и не уверен, что таким образом удастся корректно преобразовать формулы).

Никогда не работал с макросами. Но структуру более менее понимаю. Скажите пожалуйста,куда писать этот самый макрос в ворде?
PS: Я попробую,а вдруг получиться...

Alex_Gur пишет:

Может быть, коллеги смогут что-то добавить или преобразовать ваш текст как-то иначе?

Вы имеете виду люди из форума или мои знакомые?) С моей стороны конечно никто и не сможет преобразовать,автора данной дипломной работы найти не возможно.. Диплом попал ко мне из рук-в руки.. А если уважаемые форумчане помогут преобразовать или как нибудь помочь,то буду очень благодарен.. Этот диплом так мне важен...

Спасибо вам, Уважаемый, за отзывы..Благодарен!

7

Re: кракозябры при изменении шрифта gost type на любой другой

Да и ещё вопрос. Так почему другие документы преобразуются без проблем,а только с некоторыми проблемы с юникодом?  roll

8

Re: кракозябры при изменении шрифта gost type на любой другой

Высылаю в приложении то, что у меня получилось. Вроде бы получилось неплохо.

Post's attachments

Диплом 01.zip 1.69 Мб, 6 скачиваний с 2012-06-13 

You don't have the permssions to download the attachments of this post.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

9

Re: кракозябры при изменении шрифта gost type на любой другой

Преобразовал с помощью следующего макроса:

Sub changeToRusGOSTA()
'
' Преобразование из шрифт GOST type A в стандартный шрифт Times New Roman
'
' Назначение всему тексту шрифта Times New Roman
    Selection.WholeStory
    Selection.Font.Name = "Times New Roman"

' Преобразование кириллицы
    For i = 61632 To 61695
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61632-^61695)
        b1 = i - 60592
        ' Стандартный шрифт - коды ^u1040-^u1103
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

' Преобразование других символов (за исключением символа ^)
    For i = 61472 To 61533
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61472-^u61533
        b1 = i - 61440
        ' Стандартный шрифт - коды ^u32-^u93
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

    For i = 61535 To 61627
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61535-^u61627
        b1 = i - 61440
        ' Стандартный шрифт - коды ^u94-^u187
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

' Назначение тексту параметра «Русский язык»
    Selection.WholeStory
    Selection.LanguageID = wdRussian
    Application.CheckLanguage = True

End Sub

Почему другие документы преобразуются без проблем,а только с некоторыми проблемы с юникодом?

К сожалению, ответить не могу. Какие-то процессы в Ворде происходят... smile

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

10

Re: кракозябры при изменении шрифта gost type на любой другой

Уважаемый Александр Львович, огромное вам спасибо,очень и при очень благодарен Вам smile
Пожалуйста не закрывайте пока тему,возможно в будущем будут вопросы по макросам. Я не очень понял как их использовать smile
Этот макрос тоже да кидать по пути " C:/Program Files/Microsoft Office/OFFICE12/STARTUP/ "?
Макрос автоматически преобразует или нужно в ручную преобразовать в ПУ?

11

Re: кракозябры при изменении шрифта gost type на любой другой

и вопрос не по теме :
стоит ли перейти с 2007 на десятый?) Может в  десятом эти ошибки зафиксированы и исправлены и автом. преобразуются юникоды?

12

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:

Уважаемый Александр Львович, огромное вам спасибо,очень и при очень благодарен Вам smile
Пожалуйста не закрывайте пока тему,возможно в будущем будут вопросы по макросам. Я не очень понял как их использовать smile
Этот макрос тоже да кидать по пути " C:/Program Files/Microsoft Office/OFFICE12/STARTUP/ "?
Макрос автоматически преобразует или нужно в ручную преобразовать в ПУ?

Путь " C:/Program Files/Microsoft Office/OFFICE12/STARTUP/ ", скорее всего, вам пока не понадобится. smile

Посмотрите, пожалуйста, инструкцию по использованию макросов в 6-й главе из книги основателя нашего портала Антона Кокина "Word 2003/2007. Народные советы":
внешняя ссылка
Попробуйте реализовать то, что написано в этом материале.
Если что-то не получится - пишите.

Еще вам может быть полезен 6-й раздел из презентации К.Ю. Полякова (внешняя ссылка) "Word 2007 — спецкурс".
Файл презентации можно скачать здесь:
внешняя ссылка

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

13

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:

и вопрос не по теме :
стоит ли перейти с 2007 на десятый?) Может в  десятом эти ошибки зафиксированы и исправлены и автом. преобразуются юникоды?

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

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

14

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:

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

Хорошо,спасибо. А если я пойму(думаю ничего там тяжелого с этими макросами (.dot)) ,то напишу программу для автоматизации и удобство smile

15

Re: кракозябры при изменении шрифта gost type на любой другой

Версия 2010, к сожалению, реагирует на ваши файлы точно так же, как и 2007.
Так что замена 2007 на 2010 не поможет.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

16

Re: кракозябры при изменении шрифта gost type на любой другой

А вообще стоит ли перейти на 2010? много чего зафиксировано ошибок, недочетов от предыдущих версий? удобно ли?

17

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:

А вообще стоит ли перейти на 2010? много чего зафиксировано ошибок, недочетов от предыдущих версий? удобно ли?

На мой взгляд, 2010 чуть-чуть лучше, чем 2007. Но не очень существенно. Основные усовершенствования, как мне кажется, связаны с корпоративным использованием программы (в частности, совместно с сервером SharePoint).

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

18

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:
Фарид пишет:

А вообще стоит ли перейти на 2010? много чего зафиксировано ошибок, недочетов от предыдущих версий? удобно ли?

На мой взгляд, 2010 чуть-чуть лучше, чем 2007. Но не очень существенно. Основные усовершенствования, как мне кажется, связаны с корпоративным использованием программы (в частности, совместно с сервером SharePoint).

Спасибо. Всё понятно. Останусь на седьмом!

19

Re: кракозябры при изменении шрифта gost type на любой другой

Вообще-то, с обзором преимуществ версии Office 2010 по сравнению с 2007 можно ознакомиться в следующем учебном видеокурсе, подготовленном сотрудниками Microsoft:
внешняя ссылка

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

20

Re: кракозябры при изменении шрифта gost type на любой другой

1-я проблема в том что или не установлены или не правильно установлены шрифты в системной папке Fonts.
В файле "2. Тех-технологический 43.doc" используется шрифт нормальный GOST type A, в остальных GOST type A italic, который сам по себе изначально курсивный, та его еще более закурсивили.
Я установил к себе приложенные в архиве шрифты и при новом открытии все фалы открылись нормально

21

Re: кракозябры при изменении шрифта gost type на любой другой

aap77 пишет:

1-я проблема в том что или не установлены или не правильно установлены шрифты в системной папке Fonts.
В файле "2. Тех-технологический 43.doc" используется шрифт нормальный GOST type A, в остальных GOST type A italic, который сам по себе изначально курсивный, та его еще более закурсивили.
Я установил к себе приложенные в архиве шрифты и при новом открытии все фалы открылись нормально

Файлы-то при установленных шрифтах открываются нормально, но проблема - в том, что их нужно преобразовать в шрифт Times New Roman. А для двух файлов у меня это напрямую не получилось. Выводятся квадратики.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

22

Re: кракозябры при изменении шрифта gost type на любой другой

Уважаемый Александр Львович,добрый вечер.
Скажите пожалуйста ваш секрет) Как вы у меня в формулах изменили шрифт?) не получается хоть кусай зубами сетевуху  big_smile

23

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:

Уважаемый Александр Львович,добрый вечер.
Скажите пожалуйста ваш секрет) Как вы у меня в формулах изменили шрифт?) не получается хоть кусай зубами сетевуху  big_smile

А файл "2. Тех-технологический 43.doc" у меня преобразовался сам собой. smile

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

24

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:

А файл "2. Тех-технологический 43.doc" у меня преобразовался сам собой. smile

хм. Ладно уж я нашел нужный способ изменять по одно формуле с помощью встроенного редактора формул.

Посмотрел кстати код. Очень грамотно оформлено. Всё понятно мне как начинающему программисту.

Но вот к вам вопрос по коду:
как понял по вашим комментам в коде,что For i = 61632 To 61695 - это коды только шрифта GOST type A. А u1040-^u1103 - это стандартные все шрифты,включая times new romans?!
А поясните пожалуйста параметр(или переменная) b1 = i - 60592?! Что за параметр? откуда этот код? в коде немного ниже уже другие значения. А в остальном пока вопросов нет. Говорю же грамотно и висуал бейсик не так уж сложноват,если читать пару раз хелпа)

25

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:

Но вот к вам вопрос по коду:
как понял по вашим комментам в коде,что For i = 61632 To 61695 - это коды только шрифта GOST type A. А u1040-^u1103 - это стандартные все шрифты,включая times new romans?!
А поясните пожалуйста параметр(или переменная) b1 = i - 60592?! Что за параметр? откуда этот код? в коде немного ниже уже другие значения. А в остальном пока вопросов нет. Говорю же грамотно и висуал бейсик не так уж сложноват,если читать пару раз хелпа)


61632 - 60592 = 1040 и т.д.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

26

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:
Фарид пишет:

Но вот к вам вопрос по коду:
как понял по вашим комментам в коде,что For i = 61632 To 61695 - это коды только шрифта GOST type A. А u1040-^u1103 - это стандартные все шрифты,включая times new romans?!
А поясните пожалуйста параметр(или переменная) b1 = i - 60592?! Что за параметр? откуда этот код? в коде немного ниже уже другие значения. А в остальном пока вопросов нет. Говорю же грамотно и висуал бейсик не так уж сложноват,если читать пару раз хелпа)


61632 - 60592 = 1040 и т.д.

Значит чтобы найти i,нужно ставить любое число от 61632 до 61695 и найдем параметр b1?
Не знаете,для чего служит этот параметр? с помощью такого уравнение  - этот параметр выполняет какой функционал в макросе? или простое рандомное число?

27

Re: кракозябры при изменении шрифта gost type на любой другой

Фарид пишет:
Alex_Gur пишет:
Фарид пишет:

Но вот к вам вопрос по коду:
как понял по вашим комментам в коде,что For i = 61632 To 61695 - это коды только шрифта GOST type A. А u1040-^u1103 - это стандартные все шрифты,включая times new romans?!
А поясните пожалуйста параметр(или переменная) b1 = i - 60592?! Что за параметр? откуда этот код? в коде немного ниже уже другие значения. А в остальном пока вопросов нет. Говорю же грамотно и висуал бейсик не так уж сложноват,если читать пару раз хелпа)


61632 - 60592 = 1040 и т.д.

Значит чтобы найти i,нужно ставить любое число от 61632 до 61695 и найдем параметр b1?
Не знаете,для чего служит этот параметр? с помощью такого уравнение  - этот параметр выполняет какой функционал в макросе? или простое рандомное число?

Конечно, это не случайное число. Получается так, что в разных шрифтах символы идут в одной последовательности, но имеют различные коды Uniсode.
Например, после символа А идет Б, затем В и т.д. Код символа Б на единицу больше, чем код А, код символа В на единицу больше, чем код Б и т.д. Поэтому разность кодов одного символа в разных шрифтах (стандартном и нестандартном) представляет собой некоторое постоянное число, которое нужно определить.
Если такая константа существует, то это позволяет упростить процедуру определения соответствия кода стандартного шрифта нестандартному. Иначе пришлось бы перечислять пары: 61632 -> 1040 (для символа А), 61633 -> 1041 (для символа Б), 61634 -> 1042 (для символа В) и т.д.

Интересно, что в нашем случае имеются две пары последовательностей: для букв кириллицы (разность составляет 60592) и для остальных знаков (разность составляет 61440).
Если для всех символов установить параметр пересчета 61440, то текст будет представлен в кодировке CP1252 (см. http://wordexpert.ru/forum/viewtopic.php?id=1278).

Фарид, я сегодня уезжаю на отдых. Вернусь через неделю.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

28

Re: кракозябры при изменении шрифта gost type на любой другой

Alex_Gur пишет:

Преобразовал с помощью следующего макроса:

Sub changeToRusGOSTA()
'
' Преобразование из шрифт GOST type A в стандартный шрифт Times New Roman
'
' Назначение всему тексту шрифта Times New Roman
    Selection.WholeStory
    Selection.Font.Name = "Times New Roman"

' Преобразование кириллицы
    For i = 61632 To 61695
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61632-^61695)
        b1 = i - 60592
        ' Стандартный шрифт - коды ^u1040-^u1103
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

' Преобразование других символов (за исключением символа ^)
    For i = 61472 To 61533
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61472-^u61533
        b1 = i - 61440
        ' Стандартный шрифт - коды ^u32-^u93
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

    For i = 61535 To 61627
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Шрифт GOST type A - коды ^u61535-^u61627
        b1 = i - 61440
        ' Стандартный шрифт - коды ^u94-^u187
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = ChrW(b1)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i

' Назначение тексту параметра «Русский язык»
    Selection.WholeStory
    Selection.LanguageID = wdRussian
    Application.CheckLanguage = True

End Sub

Почему другие документы преобразуются без проблем,а только с некоторыми проблемы с юникодом?

К сожалению, ответить не могу. Какие-то процессы в Ворде происходят... smile

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

Post's attachments

Спецификация.docm 30.58 Кб, 4 скачиваний с 2015-01-20 

You don't have the permssions to download the attachments of this post.

29

Re: кракозябры при изменении шрифта gost type на любой другой

Тут имеет место другое преобразование - CP1252 -> CP1251:

Sub changeToRusCP1252CP1251()
'
' Замена кракозябр на кириллические буквы
' CP1252 -> CP1251
'
    For i = 192 To 255
        a1 = i
        a = Trim("^u") & Trim(Str(a1))
        ' Формирование запроса для поля Найти
        sRus = Array("А", "Б", "В", "Г", "Д", "Е", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", _
        "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", _
        "а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", _
        "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я")
        ' Формирование массива кириллических букв для поля Заменить
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = a
            .Replacement.Text = sRus(i - 192)
            .Forward = True
            .Wrap = wdFindContinue
            .MatchCase = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ' Выполнение замены по тексту
    Next i
End Sub

Результат преобразования прилагаю.

Post's attachments

Спецификация1.docm 42.47 Кб, 6 скачиваний с 2015-01-20 

You don't have the permssions to download the attachments of this post.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.