Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
1

Печать фотографии без диалогового окна

18.12.2015, 16:32. Показов 2188. Ответов 14
Метки нет (Все метки)

Здравствуйте, подскажите возможно ли напечатать фотографию/документ без диалогового окна? и как это сделать?
просто задача стоит на обработку и печать большого количества фотографий, и каждый раз подтверждать не хочется, да и долго... возможно ли автоматизировать процесс печати?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2015, 16:32
Ответы с готовыми решениями:

Поиск диалогового окна
Открываю WinRAR. Пробую разархивировать. Появляется окно "Ввод пароля". Теперь объясняю. Хочу...

Вызов диалогового окна без отправки формы
есть кнопка <button onclick='opendialog()' class="change">Показ окна</button> при клике на нее...

Отсутствие диалогового окна для сохранения файла типа XML в IE8
привет! сделал скромненький веб-сайт на asp.net. веб-сайт позволяет выбрать файл типа XML (т.е....

Переменной диалогового окна присвоить значение переменной главного окна
Необходимо переменной диалогового окна присвоить значение переменной главного окна. Вылетает ошибка...

14
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
18.12.2015, 22:21 2
Лучший ответ Сообщение было отмечено egorncpk как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;//!!!!!
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void btnPrint_Click(object sender, EventArgs e)
        {
            try
            {
                PrintDocument printDoc = new PrintDocument();
                printDoc.PrintPage += new PrintPageEventHandler(printDoc_Print);
                printDoc.Print();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void printDoc_Print(object sender, PrintPageEventArgs ev)
        {
            try
            {
                Image img = Image.FromFile(@"1.jpg"); ///!!!!!!
                PointF pf = new PointF(10, 10);
                ev.Graphics.DrawImage(img, pf);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
19.12.2015, 01:09  [ТС] 3
Спасибо, буду пробовать
0
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
23.12.2015, 20:31  [ТС] 4
Всё работает, большое спасибо и лайк))
0
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 12:46  [ТС] 5
А как настроить под печать 10х15 ? просто печатает как на А4 ((

Добавлено через 30 секунд
Woldemar89, А как настроить под печать 10х15 ? просто печатает как на А4 ((
0
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
25.12.2015, 12:52 6
Цитата Сообщение от egorncpk Посмотреть сообщение
А как настроить под печать 10х15 ? просто печатает как на А4
Не понял вопроса полностью, но посмотри перегрузки DrawImage, там их 30 штук.
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 13:00  [ТС] 7
Woldemar89, ну мне нужно печатать фотографии 10х15 см, а код выше печатает изображение не на 10х15, а как на А4
вот накопал на MSDN, но не могу понять как выставить величину на печать
C#
1
2
3
    Image newImage = Image.FromFile("SampImag.jpg");
    RectangleF rect = new RectangleF(100.0F, 100.0F, 450.0F, 150.0F);
    e.Graphics.DrawImage(newImage, rect);
0
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
25.12.2015, 13:07 8
Цитата Сообщение от egorncpk Посмотреть сообщение
а код выше печатает изображение не на 10х15, а как на А4
Растягивает на А4 или в натуральную величину печатает? Можно человеческим языком изъясняться?

Цитата Сообщение от egorncpk Посмотреть сообщение
мне нужно печатать фотографии 10х15 см
В файле уже содержится куча фотографий(файл замощен ими)? Или требуется А4\файл замостить фотками?
Или просто для одного имаджа ограничить область печати и воткнуть его туда, сжимая \ растягивая?
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 13:16  [ТС] 9
принтер настроен на печать фотографий(10х15 см), но когда отправляю программно на печать он фотки растягивает на А4 в итоге печатает только часть изображения
прикрепил изображения: 1. какое надо напечатать 2. как печатает
Миниатюры
Печать фотографии без диалогового окна   Печать фотографии без диалогового окна  
0
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
25.12.2015, 13:21 10
egorncpk, хоть бы в чб на лазерном проверял
Попробуй
C#
1
2
ev.Graphics.DrawImage(img, ev.MarginBounds);// так
ev.Graphics.DrawImage(img, ev.PageBounds);//или так
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 13:50  [ТС] 11
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Попробуй
тоже не получается, PageBounds печатает так же как на А4, а MarginBounds печатает почти правильно, только с отступами по 3 см
0
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
25.12.2015, 14:00 12
Цитата Сообщение от egorncpk Посмотреть сообщение
тоже не получается
Поковыряйся в свойствах, покомбинируй сам, мне че, до завтра варианты перебирать?
C#
1
2
ev.HasMorePages = false;//хз необходимо или нет, но на всякий случай
ev.Graphics.DrawImage(img, ev.PageSettings.PrintableArea);
Добавлено через 7 минут
Поищи как отступы задать ну итп.
Тут чет объясняют еще.
http://stackoverflow.com/quest... -full-page
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 14:07  [ТС] 13
Цитата Сообщение от Woldemar89 Посмотреть сообщение
мне че, до завтра варианты перебирать?
а можно тогда все варианты сразу списком?)

хотя последнее печатает почти так, единственное фотка чуть шире получается при такой печати, а если нормально отправить, то всё хорошо печатается. Возможно как то размер фото по ширине подогнать?
0
TheGreatCornholio
1244 / 722 / 285
Регистрация: 30.07.2015
Сообщений: 2,397
25.12.2015, 14:33 14
Лучший ответ Сообщение было отмечено egorncpk как решение

Решение

Цитата Сообщение от egorncpk Посмотреть сообщение
фото по ширине подогнать?
Простая математика - масштабирование, пропорции.

Добавлено через 3 минуты
C#
1
ev.PageSettings.Landscape; //ориентация
Добавлено через 5 минут
C#
1
ev.Graphics.DrawImage(img, ev.PageSettings.PrintableArea);
Повредит соотношение сторон (AspectRatio), сделав его как у А4.
Поэтому, чтобы оставить его неизменным, нужно растягивать\сжимать границы на одну и ту же величину.

Добавлено через 11 минут
Я щас занят, могу ошибиться, но мб так прокатит. Если нет - ты принцип понял, я думаю, надо от соотношения сторон отталкиваться.
C#
1
2
3
RectangleF rect = ev.PageSettings.PrintableArea;
rect.Height = img.Height * rect.Width/img.Width; //устанавливаем высоту пропорционально изменению ширины                
ev.Graphics.DrawImage(img, rect);
1
9 / 9 / 2
Регистрация: 04.12.2014
Сообщений: 83
25.12.2015, 15:01  [ТС] 15
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

спасибо, буду думать, потом отпишу к какому выводу пришёл

Добавлено через 23 минуты
спасибо, чуть подредачил и всё получилось))
C#
1
2
3
                RectangleF rect = ev.PageSettings.PrintableArea;
                rect.Width = img.Width * rect.Height / img.Height; //устанавливаем высоту пропорционально изменению ширины                
                ev.Graphics.DrawImage(img, rect);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2015, 15:01

Создание диалогового окна с textbox
Всем привет. Нужна небольшая помощь. Необходимо сделать так, чтобы при нажатии кнопочки в...

Закрытие диалогового окна MVVM
Помогите пожалуйста разобраться, если кто-нибудь знает: Очень тяжело идет понимание WPF и MVVM....

Автоматическая обработка всплывающего диалогового окна
В wpf WebBrowser делаю следующее: //WebBrowser web; web.navigate(url); //Жду загрузки...

Сохранение картинки без вызова диалогового окна
подскажите как сохранить измененную картинку? при всех попытках вызывается диалоговое окно, где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru