Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Копирование из Adobe Reader в Word- текст "столбиком"

Ответить
Настройки темы
Разное - Копирование из Adobe Reader в Word- текст "столбиком"

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg word как надо.jpg
(154.8 Kb, 31 просмотров)
Тип файла: jpg как получается.jpg
(147.8 Kb, 30 просмотров)
Тип файла: jpg макрос уродует текст.jpg
(172.0 Kb, 30 просмотров)
Бьюсь уже два дня над казалось бы простой задачей. Копирую текст из pdf книги из Adobe Reader в Word 2003. Текст вставляется "столбиком", а нужно чтобы все слова текста были равномерно распределены по всей ширине страниц. Прилагаю скрины как надо и как получается. Раньше у меня в Word был макрос и кнопка. Делел его сам, но как не помню. Два дня рою интернет и не могу найти ответ. Никакие форматирования абзаца не помогают. Вставил готовый макрос из интернета, так он весь текст уродует и приходится вручную форматировать, что при частом повторении копипастов (составляю реферат) делает процесс трудоемким.

Отправлено: 19:03, 26-08-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Макрос работает ровно так, как написано, не более. На выложенном Вами примере я такого не наблюдал.

Давайте будем очищать всё ручное форматирование в выделении:
Код: Выделить весь код
    Dim i As Long
    
    
    With Selection.Paragraphs
        For i = .Count - 1 To 1 Step -1
            With .Item(i).Range
                .Collapse Direction:=wdCollapseEnd
                .MoveStart Count:=-1
                .Delete
                .InsertAfter " "
            End With
        Next
        
        With .Item(1)
            .Reset
            .Range.Font.Reset
        End With
    End With
Если будет наблюдаться то же самое — начните с исправления стилей в документе, приведя их к потребному виду.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:35, 29-08-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


А я написал такой макрос, который преобразует текст из пдф-файла к человеческому виду, удалит переносы и разрывы строк, + добавит отступ в начале каждого абзаца.
Имеет недостаток - может добавить абзац, если строка заканчивалась точкой, еще может удалить дефис в слове, если перенос этого слова сделан на дефисе.
А так работает как часы,надеюсь пригодится.
Если найдете что-то лучше, сообщите пожалуйста. Часто приходится вставлять в переводчик тексты статей
Код: Выделить весь код
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "-^p"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ".^p"
        .Replacement.Text = "||||"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "  "
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "  "
        .Replacement.Text = " "
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "||||"
        .Replacement.Text = ".^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.WholeStory
    With Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(0)
        .RightIndent = CentimetersToPoints(0)
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpace1pt5
        .FirstLineIndent = CentimetersToPoints(1.25)
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
    End With
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End Sub

Отправлено: 17:13, 24-11-2015 | #12



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Копирование из Adobe Reader в Word- текст "столбиком"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Пишу текст копирую его, жму "вставить" не получается, пусто. micro8 Microsoft Windows 7 4 05-11-2011 20:52
Доступ - не работает "Как удалить текст с версией Windows на рабочем столе " medveduk-88 Microsoft Windows 7 2 12-02-2009 03:19
Разное - [.NET] string s = r.Replace(reader.ReadToEnd(), "") = вываливаемся с нехваткой памяти Vlad Drakula Программирование и базы данных 2 25-03-2008 18:49
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
[решено] Не работает копирование - вставка текста (всегда вставляется текст "Hello!") Madmech Microsoft Windows 2000/XP 5 29-11-2005 16:26




 
Переход