Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Печать отдельных разделов Word в режиме двухсторонней печати - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » Печать отдельных разделов Word в режиме двухсторонней печати
Печать отдельных разделов Word в режиме двухсторонней печати
Arden Дата: Среда, 15.02.2017, 13:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане.

Из документов word на лазерном принтере в режиме односторонней печати распечатываются извещения для абонентов. Всего около 500 документов, в каждом документе примерно по 100 страниц. В конце каждого извещения вставлен разрыв страницы, и следующее извещение всегда начинается с новой страницы.

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

Документы распечатываются просто из Windows: выделяются мышкой по 30-50 штук - контекстное меню - печать.

Стоит задача либо:
1. Те извещения, которые не входят на одну страницу, распечатывать в режиме автоматической двухсторонней печати. То есть, например, первые десять извещений входят на одну страницу, и печатаются в режиме односторонней печати. Одиннадцатое извещение занимает две страницы и должно печататься с двух сторон листа бумаги. Двенадцатое извещение опять входит на страницу, и т.д.

2. Можно пожертвовать второй страницей "длинных" извещений (важная информация находится в начале, а то, что переносится на вторую страницу - можно выкинуть).

Подскажите пожалуйста, каким образом это можно сделать? Мои соображения для второго варианта: с помощью VBA найти все страницы, на которых есть начало извещений, и отправить эти страницы выборочно на печать. Можно еще найти все страницы, на который нет начала извещений и удалить их из документа, но проблема в том, что у документа сложная структура с вложенными таблицами, и удаление происходит не всегда корректно.

Для первого варианта: может быть есть способ печатать каждый раздел документа в режиме двухсторонней печати? Тогда, по идее, все разделы, которые входят на одну страницу будут печататься с одной стороны, а те, которые не входят - с двух.

Буду благодарен за подсказку, как еще можно решить эту задачу.
 
Ответить
СообщениеДобрый день, уважаемые форумчане.

Из документов word на лазерном принтере в режиме односторонней печати распечатываются извещения для абонентов. Всего около 500 документов, в каждом документе примерно по 100 страниц. В конце каждого извещения вставлен разрыв страницы, и следующее извещение всегда начинается с новой страницы.

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

Документы распечатываются просто из Windows: выделяются мышкой по 30-50 штук - контекстное меню - печать.

Стоит задача либо:
1. Те извещения, которые не входят на одну страницу, распечатывать в режиме автоматической двухсторонней печати. То есть, например, первые десять извещений входят на одну страницу, и печатаются в режиме односторонней печати. Одиннадцатое извещение занимает две страницы и должно печататься с двух сторон листа бумаги. Двенадцатое извещение опять входит на страницу, и т.д.

2. Можно пожертвовать второй страницей "длинных" извещений (важная информация находится в начале, а то, что переносится на вторую страницу - можно выкинуть).

Подскажите пожалуйста, каким образом это можно сделать? Мои соображения для второго варианта: с помощью VBA найти все страницы, на которых есть начало извещений, и отправить эти страницы выборочно на печать. Можно еще найти все страницы, на который нет начала извещений и удалить их из документа, но проблема в том, что у документа сложная структура с вложенными таблицами, и удаление происходит не всегда корректно.

Для первого варианта: может быть есть способ печатать каждый раздел документа в режиме двухсторонней печати? Тогда, по идее, все разделы, которые входят на одну страницу будут печататься с одной стороны, а те, которые не входят - с двух.

Буду благодарен за подсказку, как еще можно решить эту задачу.

Автор - Arden
Дата добавления - 15.02.2017 в 13:13
devilkurs Дата: Четверг, 16.02.2017, 13:24 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 43 ±
Замечаний: 0% ±

Excel 2007, 2010
Arden, День добрый, а если рассмотреть вариант такого плана:

Пробегаем по документу (или Selection), находим начало извещений, определяем номер страницы
[vba]
Код
Selection.Information(wdActiveEndPageNumber) 'определяет номер страницы где стоит курсор ввода
[/vba]

Все номера страниц записываем в строковую переменную в виде "1-5,7-15,17,19"
и данный набор номеров страниц отправляем на печать
[vba]
Код
ActiveDocument.PrintOut Range:=WdPrintRangeOfPages, Pages:="1-5,7-15,17,19"
[/vba]

Для двухсторонней печати вижу только один выход: разбросать извещалки на два файла ворд: в первом те что на одном листе(и можно сразу на печать вывести), в дрогой все для двухстронней печати. А далее уже пользователь просто запустит на печать с настройкам двухсторонней печати.




Сообщение отредактировал devilkurs - Четверг, 16.02.2017, 13:52
 
Ответить
СообщениеArden, День добрый, а если рассмотреть вариант такого плана:

Пробегаем по документу (или Selection), находим начало извещений, определяем номер страницы
[vba]
Код
Selection.Information(wdActiveEndPageNumber) 'определяет номер страницы где стоит курсор ввода
[/vba]

Все номера страниц записываем в строковую переменную в виде "1-5,7-15,17,19"
и данный набор номеров страниц отправляем на печать
[vba]
Код
ActiveDocument.PrintOut Range:=WdPrintRangeOfPages, Pages:="1-5,7-15,17,19"
[/vba]

Для двухсторонней печати вижу только один выход: разбросать извещалки на два файла ворд: в первом те что на одном листе(и можно сразу на печать вывести), в дрогой все для двухстронней печати. А далее уже пользователь просто запустит на печать с настройкам двухсторонней печати.

Автор - devilkurs
Дата добавления - 16.02.2017 в 13:24
Arden Дата: Пятница, 17.02.2017, 09:31 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Все номера страниц записываем в строковую переменную в виде "1-5,7-15,17,19"
и данный набор номеров страниц отправляем на печать

Да, этого варианта пока и придерживаемся, если не удастся решить задачу красивее.

Для двухсторонней печати вижу только один выход: разбросать извещалки на два файла ворд: в первом те что на одном листе(и можно сразу на печать вывести), в дрогой все для двухстронней печати. А далее уже пользователь просто запустит на печать с настройкам двухсторонней печати.

Хорошо, но из готового документа word, как я писал вначале, не всегда корректно удаляются отдельные листы (в документе много вложенных таблиц), то есть удалить "лишние" листы пока не представляется возможным. Разделять документ на этапе его формирования невозможно по другим техническим причинам, на которые не удастся повлиять.
 
Ответить
Сообщение
Все номера страниц записываем в строковую переменную в виде "1-5,7-15,17,19"
и данный набор номеров страниц отправляем на печать

Да, этого варианта пока и придерживаемся, если не удастся решить задачу красивее.

Для двухсторонней печати вижу только один выход: разбросать извещалки на два файла ворд: в первом те что на одном листе(и можно сразу на печать вывести), в дрогой все для двухстронней печати. А далее уже пользователь просто запустит на печать с настройкам двухсторонней печати.

Хорошо, но из готового документа word, как я писал вначале, не всегда корректно удаляются отдельные листы (в документе много вложенных таблиц), то есть удалить "лишние" листы пока не представляется возможным. Разделять документ на этапе его формирования невозможно по другим техническим причинам, на которые не удастся повлиять.

Автор - Arden
Дата добавления - 17.02.2017 в 09:31
devilkurs Дата: Пятница, 17.02.2017, 09:38 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 43 ±
Замечаний: 0% ±

Excel 2007, 2010
Arden, Выложите пример с несколькими извещалками без конфиденциальной информации, особенно где
не всегда корректно удаляются отдельные листы (в документе много вложенных таблиц)

Посмотрю и предложу вам вариант.


 
Ответить
СообщениеArden, Выложите пример с несколькими извещалками без конфиденциальной информации, особенно где
не всегда корректно удаляются отдельные листы (в документе много вложенных таблиц)

Посмотрю и предложу вам вариант.

Автор - devilkurs
Дата добавления - 17.02.2017 в 09:38
devilkurs Дата: Пятница, 17.02.2017, 10:23 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 43 ±
Замечаний: 0% ±

Excel 2007, 2010
Arden, попробуйте следующую конструкцию:
1) перебираем документ и в две строковые переменные вписываем номера страниц: в первую для печати на одном листе, во вторую для двухсторонней печати.
2) выпускаем на печать извещалки, помещающиеся на один лист методом который я писал выше. (т.е. номера листов из первой переменной)
3) из второй переменной берем номера страниц для вывода диалогового окна печати с включением дуплекса этим макросом:
[vba]
Код
    Set dd = Application.Dialogs(wdDialogFilePrint)
    dd.Range = wdPrintRangeOfPages
    dd.Pages = "5,6,16,17,20,21"
    dd.DuplexPrint = True
    dd.Show
[/vba]
Пользователь подтверждает печать извещалок через дуплекс.




Сообщение отредактировал devilkurs - Пятница, 17.02.2017, 10:24
 
Ответить
СообщениеArden, попробуйте следующую конструкцию:
1) перебираем документ и в две строковые переменные вписываем номера страниц: в первую для печати на одном листе, во вторую для двухсторонней печати.
2) выпускаем на печать извещалки, помещающиеся на один лист методом который я писал выше. (т.е. номера листов из первой переменной)
3) из второй переменной берем номера страниц для вывода диалогового окна печати с включением дуплекса этим макросом:
[vba]
Код
    Set dd = Application.Dialogs(wdDialogFilePrint)
    dd.Range = wdPrintRangeOfPages
    dd.Pages = "5,6,16,17,20,21"
    dd.DuplexPrint = True
    dd.Show
[/vba]
Пользователь подтверждает печать извещалок через дуплекс.

Автор - devilkurs
Дата добавления - 17.02.2017 в 10:23
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » Печать отдельных разделов Word в режиме двухсторонней печати
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!