свой "модуль печати"

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

свой "модуль печати"

Сообщение ssv22 » 14.10.2007 (Вс) 22:02

Задачка у меня появилась такая:
имеется прога, допустим АвтоКад, там при выводе на печать есть возможность выбора области печати. Но как это реализовано мне не нравиться.
Цель:
как на VB (или еще на чем) написать свой "модуль печати", что бы он сам разбивал "большой" лист, скажем формат А1 на неоходимое число форматов А4.
Может как-то окно предварительного прсмотра "перехватывать" и потом резать его на куски.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 14.10.2007 (Вс) 22:45

боюсь тебе придется изучить формат документа, затем правильно открыть в своем "модуле", после чего можешь делать с ним что хошь. хоть печатать, хоть сохранить в другом формате.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 14.10.2007 (Вс) 23:39

Че-та с трудом верится, что в автокаде нет разбивки на страницы, если я правильно понял то, что ты описал...
Подпись проходит рефакторинг

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 17.10.2007 (Ср) 12:52

Lumen писал(а):Че-та с трудом верится, что в автокаде нет разбивки на страницы, если я правильно понял то, что ты описал...

Честно говоря я не автокад имел ввиду, а SolidWorks.
Так вот там с этим проблемы: при печати большого формата приходится "вручную" выбирать окном зоны печати.
Вот мне очень понравилось как это сделано в Компасе(если кто видел): там можно разложить допустим формат А1 на 2 или 4 формата А4, и все это очень наглядно показывается в окне предварительного просмотра перед печатью.
Кстати (сильно не бейте) вроде где-то я читал, что то что мы видим в окне предварительного просмотра печати (в любой проге) это есть временный WMF-файл.
Или я не прав!?
Если не прав, то следующий вопрос: что есть "окно предварительного просмотра печати"? Кто его создает: сама прога или драйвер принтера или Windows?
Заранее спасибо.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 17.10.2007 (Ср) 22:35

Ессно сама прога. Драйвер вообще тут ни причем
Подпись проходит рефакторинг

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 17.10.2007 (Ср) 22:39

Кто не работал с отчетами в БД тому не понять, как надо печатать и как сохранять! :lol:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 18.10.2007 (Чт) 7:58

Денис писал(а):Кто не работал с отчетами в БД тому не понять, как надо печатать и как сохранять! :lol:

А причем здесь вообще отчеты БД??? Это я уже проходил.
Что там печатать? Текст? Это меня не интересует: объект "Printer" и вперед...

Речь идет о графическом, уже существующем документе.

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

свой модуль печати

Сообщение ssv22 » 20.10.2007 (Сб) 14:27

Ну и че, никто не может помоь?

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Re: свой модуль печати

Сообщение netdemon » 21.10.2007 (Вс) 16:21

ssv22 писал(а):Ну и че, никто не может помоь?


А у тебя разве принтер автоматически не разбивает большие форматы?
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 21.10.2007 (Вс) 20:43

netdemon
Разбивает неправильно например....

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Re: свой модуль печати

Сообщение ssv22 » 27.10.2007 (Сб) 15:44

netdemon писал(а):
ssv22 писал(а):Ну и че, никто не может помоь?


А у тебя разве принтер автоматически не разбивает большие форматы?

Как он может разбивать: принтер А4 (HP deskjet 3550), а лист А1. Там только в ручную по зонам...
И потом, разбивает все-таки сама прога, не принтер.
Компас, например - отлично!

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 27.10.2007 (Сб) 15:47

Cytron писал(а):netdemon
Разбивает неправильно например....

Не понял: это к какому сообщению?

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 27.10.2007 (Сб) 18:24

Ну дык. А я что говорил?
Подпись проходит рефакторинг

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 27.10.2007 (Сб) 19:31

Ну так что, нет решения данной задачи или никто не интересуется.
Хотя-бы алгоритм...

PS. в Компасе то сделали - значит решение есть.
Бум искать...

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 27.10.2007 (Сб) 19:53

ssv22
Тебе ведь уже сказали, придется разбираться с форматом файла SolidWorks. Попробуй поглядеть на www.wotsit.org. Вроде так.
Подпись проходит рефакторинг

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 27.10.2007 (Сб) 21:08

Lumen писал(а):ssv22
Тебе ведь уже сказали, придется разбираться с форматом файла SolidWorks. Попробуй поглядеть на www.wotsit.org. Вроде так.


Ссылка не работает.

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

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 28.10.2007 (Вс) 9:10

www.wotsit.org - так работает.
Блин, как объяснить человеку, что SolidWorks по-своему представляет чертежи в файле, и если открыть к примеру блокнотом, то ничего не увидишь. Если только в референсах че-нить подключить и печатать через OLE.
Подпись проходит рефакторинг

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 28.10.2007 (Вс) 10:12

Lumen писал(а):www.wotsit.org - так работает. Спасибо! Только
Если только в референсах че-нить подключить и печатать через OLE.


А вот с этого иеста можно поподробнее? Если сильно не отвлеку. Или ссылочку какую-нибудь, что почитатть.
Может это мне и нужно.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 28.10.2007 (Вс) 20:04

77
Последний раз редактировалось Al Khamid 30.10.2007 (Вт) 17:35, всего редактировалось 1 раз.
"Время пришло..." ©

ssv22
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 06.11.2005 (Вс) 8:47

Сообщение ssv22 » 28.10.2007 (Вс) 20:28

Al Khamid писал(а):Вот какой-то рассказ про СолидВоркс: http://www.delcam-ural.ru/cad_pdm_capp/solidworks

SolidWorks использует все преимущества операционных систем Windows. <...> технологии OLE для обменa объектами с другими приложениями, гибкая система помощи, сpедствa сетевой поддержки, возможность разработки приложений на языке VisualBasic или Visual С++ и многое дpугое.


То есть по идее все операции (в том числе печать заданного фрагмента) должны быть доступны через "задний программный проход" - OLE, как например у приложений MS Office.

Иначе придется писать свой драйвер виртуального принтера, как "адобе акробат".

Задай в поисковике "SolidWorks OLE" - может найдется чего.
По SolidWorks даже рефераты пишут:

Расказик по SW я сам бы написал - с 1999 года в нем работаю.
В том-то и дело мало там насчет печати (нет средств API) иначе что-бы я тут бурду разводил.
И поиск ничего не дает:-(
А эти "рефераты" лучше никому не показывать.

http://referat.niv.ru/referat/047/04700015.htm


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

    TopList  
cron