1

Тема: Word 2007, текст не занимает всю страницу

Скопировал из pdf документа текст, но он настойчиво не хочет занимать всю страницу,а в ручную 20 страниц достаточно долго делать.

Post's attachments

РОССИЙСКИЙ ИСТОРИЧЕСКИЙ ОПЫТ ГОРОДСКОГО.docx 49.41 Кб, 10 скачиваний с 2011-11-21 

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

2

Re: Word 2007, текст не занимает всю страницу

Совет был неправильный (удален).

Первоначально предложенный вариант заменить  все сразу (скопом)  типа [абв...]^13   на [абв...]
был неправильным.
Можно заменять только по отдельности, типа: заменить [а]^13+ подстановочные знаки на [а]пробел,
[б]^13+ подстановочные знаки на [б]пробел,   [:]^13 и т. п. 
Перенос [-]^13 - удалить,
точку [.]^13 - не трогать.
Или воспользоваться макросом, который перебирант из мааива символы и удаляет их вместо со знаком абзаца.

Отредактировано ЮВ (22.11.2011 10:45:39)

3

Re: Word 2007, текст не занимает всю страницу

PedoDiddy пишет:

Скопировал из pdf документа текст, но он настойчиво не хочет занимать всю страницу,а в ручную 20 страниц достаточно долго делать.


Уважаемый PedoDiddy:

Недавно у нас было подробное обсуждение аналогичного вопроса:
http://wordexpert.ru/forum/viewtopic.php?id=985

В скопированном Вами тексте  в каждой строке находятся знаки конца абзаца.
Для того, чтобы их увидеть, нажмите кнопку Отобразить все знаки (на Главной вкладке в группе Абзац).
Вам необходимо удалить все ненужные знаки конца абзаца вручную или воспользоваться поиском этих знаков, введя в строку поиска следующие символы:
^v

Также коллегами был разработан макрос, который выполняет эту работу.

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

4

Re: Word 2007, текст не занимает всю страницу

Alex_Gur пишет:

^v

Небольшая поправка:
Искать надо комбинацию ^p, а не ^v.

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

5

Re: Word 2007, текст не занимает всю страницу

На всякий случай преобразовал Ваш файл.
Пользуйтесь на здоровье!

Post's attachments

Российский опыт.docx 43.31 Кб, 3 скачиваний с 2011-11-22 

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

6

Re: Word 2007, текст не занимает всю страницу

Alex_Gur
Также коллегами был разработан макрос, который выполняет эту работу.
Пожалуйста, приведите вид макроса.

7

Re: Word 2007, текст не занимает всю страницу

tigr пишет:

Alex_Gur
Также коллегами был разработан макрос, который выполняет эту работу.
Пожалуйста, приведите вид макроса.

Просмотрел форум и, к сожалению, этого макроса не нашел.
На сайте есть статья:
http://wordexpert.ru/page/udalenie-lish … noj-makros
Но я не уверен, что это именно то, что нужно в данном случае.

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

8

Re: Word 2007, текст не занимает всю страницу

tigr пишет:

Alex_Gur
Также коллегами был разработан макрос, который выполняет эту работу.
Пожалуйста, приведите вид макроса.

Иван (tigr), если не найдется такой макрос готовый, придется его написать. Есть идеи... smile

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

9

Re: Word 2007, текст не занимает всю страницу

Alex_Gur пишет:
tigr пишет:

Alex_Gur
Также коллегами был разработан макрос, который выполняет эту работу.
Пожалуйста, приведите вид макроса.

Иван (tigr), если не найдется такой макрос готовый, придется его написать. Есть идеи... smile


Иван, макрос оказался не очень сложным.
Он выполняет следующие действия:
1) Удаление пробелов в конце строк, где они есть (замена " ^p" на "^p" несколько раз)
2) Удаление знаков переноса (замена "-^p" на "" и "–^p" на "")
3) Добавление пустых строк после различных знаков препинания:
а) Добавление пустой строки после точки (замена ".^p" на ".^p^p")
б) Добавление пустой строки после двоеточия (замена ":^p" на ":^p^p")
в) Добавление пустой строки после точки с запятой (замена ";^p" на ";^p^p")
г) Добавление пустой строки после восклицательного знака (замена "!^p" на "!^p^p")
д) Добавление пустой строки после вопросительного знака (замена "?^p" на "?^p^p")
е) Добавление пустой строки после троеточия (замена "…^p" на "…^p^p")
4) Выделение сочетания "^p^p" жирным шрифтом (замена "^p^p" нежирным шрифтом на "^p^p" жирным шрифтом)
5) Замена "^p" на " " для нежирного шрифта (замена "^p" нежирным шрифтом на " " нежирным шрифтом)
6) Убрать знаки переноса жирным шрифтом (замена "^p" жирным шрифтом на "^p" нежирным шрифтом)

Недостатки данного макроса:
1) Он объединяет с последующим текстом строки, которые не кончаются на знаки препинания (заголовки, знак препинания пропущен, названия рисунков, номер страницы книги).
2) Не работает с таблицами.
3) «Ошибается», если знак переноса выделен жирным шрифтом.
4) Если знак переноса «случайно» находится после знака «тире» в словах, в которых должно стоять тире (например, «административно-территориальный», «социально-экономический»), то конец строки и начало следующей строки объединяются без тире («административнотерриториальный», «социальноэкономический»).
5) Если знак переноса «случайно» находится после знака «точка с запятой», то считается, что это конец строки (это не всегда так).

Вот предлагаемый макрос:

Sub Макрос1()
'
' Макрос1 Преобразование txt в doc
'
'
' 1) Удаление пробелов в конце строк, где они есть (замена " ^p" на "^p" несколько раз)
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .ClearFormatting
        .Replacement.ClearFormatting
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .Execute Replace:=wdReplaceAll
    End With
   
' 2) Удаление знаков переноса (замена "-^p" на "" и "-^p" на "")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "-^p"
        .Replacement.ClearFormatting
        .Replacement.Text = ""
'        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = "-^p"
        .Replacement.ClearFormatting
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
   
' 3а) Добавление пустой строки после точки (замена ".^p" на ".^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = ".^p"
        .Replacement.Text = ".^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 3б) Добавление пустой строки после двоеточия (замена ":^p" на ":^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = ":^p"
        .Replacement.Text = ":^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 3в) Добавление пустой строки после точки с запятой (замена ";^p" на ";^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = ";^p"
        .Replacement.Text = ";^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 3г) Добавление пустой строки после восклицательного знака (замена "!^p" на "!^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "!^p"
        .Replacement.Text = "!^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 3д) Добавление пустой строки после вопросительного знака (замена "?^p" на "?^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "?^p"
        .Replacement.Text = "?^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 3е) Добавление пустой строки после троеточия (замена "…^p" на "…^p^p")
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "…^p"
        .Replacement.Text = "…^p^p"
        .Replacement.Font.Bold = False
        .Execute Replace:=wdReplaceAll
    End With

' 4) Выделение сочетания "^p^p" жирным шрифтом (замена "^p^p" нежирным шрифтом на "^p^p" жирным шрифтом)
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "^p^p"
        .Replacement.Text = "^p^p"
        .Replacement.Font.Bold = True
        .Execute Replace:=wdReplaceAll
    End With
   
' 5) Замена "^p" на " " для нежирного шрифта (замена "^p" нежирным шрифтом на " " нежирным шрифтом)
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .Text = "^p"
        .Font.Bold = False
        .Replacement.Text = " "
        .Replacement.ClearFormatting
        .Execute Replace:=wdReplaceAll
    End With

' 6) Убрать знаки переноса жирным шрифтом (замена "^p" жирным шрифтом на "^p" нежирным шрифтом)
    Selection.Start = 0
    Selection.End = 0
    With Selection.Find
        .ClearFormatting
        .Format = True
        .Font.Bold = True
        .Text = "^p^p"
        .Replacement.ClearFormatting
        .Replacement.Text = "^p"
        .Forward = True
        .Execute Replace:=wdReplaceAll
    End With

End Sub

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

10

Re: Word 2007, текст не занимает всю страницу

Размещаю файл с несколько усовершенствованным макросом.
Для его корректной работы должен быть установлен режим Включиты макросы.

Post's attachments

FileConvertion.zip 54.39 Кб, 31 скачиваний с 2011-11-28 

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

11

Re: Word 2007, текст не занимает всю страницу

Alex_Gur, спасибо! Макрос работает! На "Недостатки данного макроса" может посмотрит  viter.alex, он большой спец в этих делах.

12

Re: Word 2007, текст не занимает всю страницу

tigr пишет:

Alex_Gur, спасибо! Макрос работает! На "Недостатки данного макроса" может посмотрит  viter.alex, он большой спец в этих делах.

Буду признателен, если Алекс посмотрит.
Конечно, хотелось бы уменьшить недостатки, но, боюсь, это будет не очень просто.

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

13

Re: Word 2007, текст не занимает всю страницу

Alex_Gur, спасибо! А нельзя ли сделать макрос, который работает для части текста (для выделенного участка текста)? Ваш макрос работает (по умолчанию) со <font color=Red>всем</font> текстом.

14

Re: Word 2007, текст не занимает всю страницу

tigr пишет:

Alex_Gur, спасибо! А нельзя ли сделать макрос, который работает для части текста (для выделенного участка текста)? Ваш макрос работает (по умолчанию) со <font color=Red>всем</font> текстом.

Наверное можно, Иван. Я подумаю.

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

15

Re: Word 2007, текст не занимает всю страницу

Alex_Gur, спасибо!
Что-то цвет слова "всем" не сработал в моем предыдущем сообщении.

16

Re: Word 2007, текст не занимает всю страницу

Для преобразования только выделенной части макрос вроде бы должен быть таким:

Sub FileConvertion_01()
'
' FileConvertion - Преобразование выделенной части файлов с избыточными знаками конца абзаца
'
'
' 1) Удаление пробелов в конце строк, где они есть (замена " ^p" на "^p" несколько раз)
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .ClearFormatting
        .Replacement.ClearFormatting
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = " ^p"
        .Replacement.Text = "^p"
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
   
' 2) Удаление знаков переноса (замена "-^p" на "" и "-^p" на "")
    With Selection.Find
        .Text = "-^p"
        .Replacement.ClearFormatting
        .Replacement.Text = ""
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = "-^p"
        .Replacement.ClearFormatting
        .Replacement.Text = ""
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
   
' 3а) Добавление пустой строки после точки (замена ".^p" на ".^p^p")
    With Selection.Find
        .Text = ".^p"
        .Replacement.Text = ".^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3б) Добавление пустой строки после двоеточия (замена ":^p" на ":^p^p")
    With Selection.Find
        .Text = ":^p"
        .Replacement.Text = ":^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3в) Добавление пустой строки после точки с запятой (замена ";^p" на ";^p^p")
    With Selection.Find
        .Text = ";^p"
        .Replacement.Text = ";^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3г) Добавление пустой строки после восклицательного знака (замена "!^p" на "!^p^p")
    With Selection.Find
        .Text = "!^p"
        .Replacement.Text = "!^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3д) Добавление пустой строки после вопросительного знака (замена "?^p" на "?^p^p")
    With Selection.Find
        .Text = "?^p"
        .Replacement.Text = "?^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3е) Добавление пустой строки после троеточия (замена "…^p" на "…^p^p")
    With Selection.Find
        .Text = "…^p"
        .Replacement.Text = "…^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 3ж) Добавление пустой строки после знака звездочки (замена "*^p" на "*^p^p")
    With Selection.Find
        .Text = "*^p"
        .Replacement.Text = "*^p^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 4) Выделение сочетания "^p^p" жирным шрифтом (замена "^p^p" нежирным шрифтом на "^p^p" жирным шрифтом)
    With Selection.Find
        .Text = "^p^p"
        .Replacement.Text = "^p^p"
        .Replacement.Font.Bold = True
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With
   
' 5) Замена "^p" на " " для нежирного шрифта (замена "^p" нежирным шрифтом на " " нежирным шрифтом)
    With Selection.Find
        .Text = "^p"
        .Font.Bold = False
        .Replacement.Text = " "
        .Replacement.ClearFormatting
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 6) Убрать знаки переноса жирным шрифтом (замена "^p" жирным шрифтом на "^p" нежирным шрифтом)
    With Selection.Find
        .ClearFormatting
        .Format = True
        .Font.Bold = True
        .Text = "^p^p"
        .Replacement.ClearFormatting
        .Replacement.Font.Bold = False
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

' 7) Удаление лишних пробелов, которые могут образоваться в начале абзацев (замена "^p " на "^p")
    With Selection.Find
        .ClearFormatting
        .Text = "^p "
        .Replacement.Text = "^p"
        .Replacement.Font.Bold = False
        .Wrap = wdFindStop
        .Execute Replace:=wdReplaceAll
    End With

    Selection.Collapse direction:=wdCollapseStart   'снимаем выделение

End Sub

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

17

Re: Word 2007, текст не занимает всю страницу

Посмотрите макрос для преобразования только выделенной части в виде файла.

Post's attachments

FileConvertion_01.doc 64 Кб, 27 скачиваний с 2011-11-30 

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

18

Re: Word 2007, текст не занимает всю страницу

tigr пишет:

Alex_Gur, спасибо!
Что-то цвет слова "всем" не сработал в моем предыдущем сообщении.

В прошлый раз цвет у Вас сработал. Было:

[color=red]выражение[/color]

а не

<font color=Red>всем</font>

То есть открывающий тег "color=red" и закрывающий тег "/color", а не "font color=Red" и "/font". smile

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

19

Re: Word 2007, текст не занимает всю страницу

Alex_Gur, большое спасибо! Новый макрос работает!
Да, с тэгами я что-то намудрил.