Страница: 1 | 2 |
Вопрос: Плиз, окажите помощь
Добавлено: 27.02.07 23:16
Автор вопроса: Marki
Используется VB 2005 Express Edition.
Есть форма с несколькими TextBox, значение которых некоторым образом обрабатывается.
В результате необходимо вывести на печать документ определенной формы.
Подразумевается что такой документ геренируется программно и отправляется на печать (допускается вариант предварительного создания "отчета" как это реализовано в Access, но все равно потребуется добавление/удаление объектов в документ в процессе обработки данных).
Пожалуйста, подскажите "от чего плясать" (ни разу не сталкивался с печатью):
1. какие взять за основу объекты
2. каким образом организовать предосмотр
3. порядок изменения свойств/настроек печати
4. вставка в документ картинок (из файла jpeg/bmp) с возможно необходимой обработкой по размеру (уменьшение - тоже вопрос каким образом это реализовать).
Посмотрел объекты PageSetupDialog и PrintDocument. Или туплю, или как-то не очень сразу понятна методика их использования.
Заранее благодарю за конструктивные и, что не менее важно, оперативные ответы.
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 28.02.07 00:11
Вся печать идет через спулер печати.
Для печати получить контекст принтера. Использовать контекст в функциях текстового и растрового вывода. Пример для новичка ненаглядный.
Номер ответа: 2
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #2
Добавлено: 28.02.07 00:30
Замечательный ответ - ясный и подробный,а главное - результативный.
Напомню - есть задача, которую требуется решить. Если Вы хотите просто блеснуть знанием терминологии перед остальными - буду признетелен за использование для этого другого места.
Тех кто имеет возможность не "поумничать" а реально помочь советом - повторно прошу оказать посильное содействие.
Еще раз всем - спасибо.
Номер ответа: 3
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #3
Добавлено: 28.02.07 00:37
Ну, что-ж, давай подробнее...
1. какие взять за основу объекты...
Предполагаешь использовать готовые ocx или писать через WINAPI 32?
2. каким образом организовать предосмотр...
Весь вывод предполагаемый в контекст принтера перенести на контекст окна.
3.порядок изменения свойств/настроек печати
Наверное самое простое.
4. вставка в документ картинок
BitBlt
Вопросы?
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 28.02.07 00:42
Чел же ясно сказал, что у него Visual Basic 2005, что ты про АПИ лепишь?
Номер ответа: 5
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #5
Добавлено: 28.02.07 00:43
А, так он с кубиками играет...
Номер ответа: 6
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #6
Добавлено: 28.02.07 00:46
В VB 2005 все проще - есть объект PrintDocument, вывод можно делать через GDI+.
Псмотри Эпплмана, у него были примеры и печати, и предпросмотра.
Номер ответа: 7
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #7
Добавлено: 28.02.07 00:47
ок. Еще раз:
1. использование API не предполагается.
2. оптимальным представляется создание некоей страницы (отчета), куда помещаются необходимые объекты (текст, графика...), причем задается их расположение (по типу Top/Left/Width... в форме).
Для понимания желаемого - выше указана ссылка на нечnо подобное (отчет Access).
Иначе говоря - есть ли возможность создать анагог формы, но для печати, куда можно добавлять требуемые объекты и потом все это - на принтер.
Если такой возможности нет, то каким образом иначе решить эту задачу?
Предполагается вывод данных в табличном виде (несколько таблиц "неправильной" формы - размер каждой из строк может не совпадать с соседними) и пара-тройка картинок из графического файла.
Номер ответа: 8
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #8
Добавлено: 28.02.07 00:49
ага, не все на VB ядерным моделированием занимаются.
Номер ответа: 9
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #9
Добавлено: 28.02.07 00:49
Буду признателен за ссылочку.
Номер ответа: 10
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #10
Добавлено: 28.02.07 01:12
>>Brand
Что ты ему эплмана суешь, как я API,
ведь стартпостеру не понятен вызов PrintDocument1
Private Sub Button1_Click(........
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(...
e.Graphics.....
End Sub
Номер ответа: 11
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #11
Добавлено: 28.02.07 02:31
насчет кубиков..
Я заглянул в VB200...
там есть даже такая халява как PrintPreviewControl
линкуемая к PrintDocument в свойствах.
Что же ты, а?
Номер ответа: 12
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #12
Добавлено: 28.02.07 02:43
2 EUGY
---
Эх!...
Видимо, стОит все-таки немного пояснить одно из назначений форума: здесь задают вопросы те, кто в чем-то не смог разобраться. И какими бы не показались глупыми или наивными вопросы - они здесь заданы вовсе не для того чтобы тыкать пальцами "а он не знает!". Тот кто задает вопрос уже признает что обратился за помощью именно потому что не смог разобраться.
Я понимаю, что для некоторых это "особый шик", глядя сверху с ухмылкой смотреть на вопрощающих...
Кое-что я наковырял, несомненно, и сам. Но включание в вопрос ряда моментов иногда бывает вполне сознательным - для проверки корректности результата своих "изысканий".
кстати, на
Невнимательность при чтении вопроса, или все же непонимание проблемы?
"Общие ответы" сами по себе бесполезны - список свойств уже давно просмотрен, и раз есть вопрос, значит к нему надо подходить несколько иначе, на не отвечать на вопрос "как напечатать" фразой "а надо печатать".
Диалог получился "пустой" и бессодержательный, надо его прекращать.
В любом случае благодарю за внимание к вопросу, эта пустая болтовня хоть немного скрасила копание в MSDN и прочих источниках.
Удачи.
Номер ответа: 13
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #13
Добавлено: 28.02.07 02:48
А кто тебе здесь помогает, как ни я?
Не ясен был вызов PrintDocument - пожалуйста.
Думаешь не нужно Api? Будешь вынужден есть те-же конфеты в другой обертке.
Номер ответа: 14
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #14
Добавлено: 28.02.07 02:53
Не стану разачоровывать, но вынужден отослать к более раннему сообщению и в отношении результативности "помощи", и к информации об окончании диалога.
Честное слово, и так времени не много, а вместо того чтобы искать и разбираться приходится на пустой треп тратиться.
Номер ответа: 15
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #15
Добавлено: 28.02.07 02:56
Какие мы ранимые...
Пока.