Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2015, 13:51   #1
Sergei_alfimtsev
Пользователь
 
Регистрация: 25.10.2015
Сообщений: 14
По умолчанию Организация печати с WindowsForm в C#

Здравствуйте. При изучении С# столкнулся с задачей печати документа. Есть форма на ней tabControl1 на каждой вкладке которого в зависимости от назначения разные элементы. В основном по несколько TextBox-ов и обязательно DataGridView. Вопрос такой: воспользовавшись готовыми диалогами организации печати и предварительного просмотра смогу ли я распечатать содержимое данных элементов на одной странице и в тех местах где они расположены, если да, то как правильно это сделать? Почитал Петзольда на эту тему, но конкретных примеров схожих с моей задачей не нашел, если есть скиньте плиз.
Sergei_alfimtsev вне форума Ответить с цитированием
Старый 25.10.2015, 14:45   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Диалоги просто диалоги, печатать они не умеют. Печать делают либо по готовому документу либо руками.
come-on вне форума Ответить с цитированием
Старый 25.10.2015, 15:12   #3
Sergei_alfimtsev
Пользователь
 
Регистрация: 25.10.2015
Сообщений: 14
По умолчанию

Хорошо. Это-то я понимаю. Но вот как руками? И еще более сложный вопрос: как из разных элементов управления данные вытащить и разместить их на странице? Если есть пример сбросьте пожалуйста. Я с печатью вообще еще не работал, а надо очень и времени на детальное изучение книг нету! Да и по книгам не очень понятно, а на примере все таки легче разобраться. Спасибо.
Sergei_alfimtsev вне форума Ответить с цитированием
Старый 25.10.2015, 15:17   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Руками это значит изучаете систему комманд вашего принтера и потом пишете алгоритм который по средствам этих комманд будет выводить в принтер.
Только здается что вы не понимаете, хотя и пишете обратное.
Цитата:
как из разных элементов управления данные вытащить
Как обычно это делают.
Цитата:
разместить их на странице
Откуда страница взялась?

что и как вам печатать надо?
come-on вне форума Ответить с цитированием
Старый 25.10.2015, 15:34   #5
Sergei_alfimtsev
Пользователь
 
Регистрация: 25.10.2015
Сообщений: 14
По умолчанию

Мне нужно распечатать таблицу с данными, имеющую шапку, ну типа
УТВЕРЖДАЮ
Директор
Иванов Иван Иванович
ну и т.д.

шапка в TextBoxe, Таблица в DateGridView
Sergei_alfimtsev вне форума Ответить с цитированием
Старый 25.10.2015, 15:50   #6
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Вообще проще вам воспользоваться репортером (https://msdn.microsoft.com/en-us/library/bb558709.aspx), создадите шаблон, потом возмете ReportViewer, он вам и превью сделает и напечатает.
come-on вне форума Ответить с цитированием
Старый 25.10.2015, 17:32   #7
Sergei_alfimtsev
Пользователь
 
Регистрация: 25.10.2015
Сообщений: 14
По умолчанию

Спасибо. Буду пробовать. Как только, что-то получится отпишусь. И все-таки, если есть какой-то пример в вашей практике скиньте плиз.
Sergei_alfimtsev вне форума Ответить с цитированием
Старый 25.10.2015, 17:41   #8
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Примеры чего? напрямую на принтер отправлять вам надо искать только по конкретно вашему принтеру, по работе с репортером, все примеры на мсдн, с картинками, шахматами и балеринами, создать документ, например в ворде и отправить его на печать, на мсдн с картинками, и т.д.
come-on вне форума Ответить с цитированием
Старый 25.10.2015, 20:14   #9
Sergei_alfimtsev
Пользователь
 
Регистрация: 25.10.2015
Сообщений: 14
По умолчанию

Спасибо за информацию и помощь. Было полезно.

С помощью следующих методов добился печати информации из нужных мне элементов.
Код:
 private void button2_Click(object sender, EventArgs e)
        {
            printPreviewDialog1.Document = printDocument1;
            printPreviewDialog1.ShowDialog();
        }

        private void printPreviewDialog1_Load(object sender, EventArgs e)
        {
            
        }

        private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {
            int WidthDGV1 = dataGridView1.Size.Width;
            int HiegthDGV1 = dataGridView1.Size.Height;

            Bitmap bmp = new Bitmap(dataGridView1.Size.Width +WidthDGV1, dataGridView1.Size.Height+HiegthDGV1 );
            dataGridView1.DrawToBitmap(bmp,dataGridView1.Bounds);
            e.Graphics.DrawImage(bmp,0,0);

            e.Graphics.DrawString(textBox1.Text,new Font("Arial", 14),Brushes.Black,new Point(430,50));

        }

        private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }
Но возникла другая проблема. Информация из DataGridView отображается только та, которая в видимой области, а та, что не помещается в видимой области dataGridview нет.
Как решить эту задачу?

Последний раз редактировалось Stilet; 26.10.2015 в 20:12.
Sergei_alfimtsev вне форума Ответить с цитированием
Старый 25.10.2015, 20:26   #10
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Потому что вам при печати DataGridView не нужен совсем. Нужны только данные.
Откуда в DataGridView приходят данные?
come-on вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Вывести WindowsForm на закладку TabPage st_yak C# (си шарп) 5 01.08.2013 18:15
Организация печати -Apostol- БД в Delphi 1 24.04.2011 14:16
Массив Point в WindowsForm visual2008 c++ scripto Visual C++ 0 02.04.2011 12:21
Вопрос по печати belst Microsoft Office Excel 18 24.03.2011 14:57
Настройка печати Максим_Леонидович Компоненты Delphi 3 26.09.2008 20:45