crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Распечатка на принтер, Масштабирование на страницу
AD
  опции профиля:
сообщение 31.5.2011, 9:51
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Вопрос следующий. Имеется QGraphicsScene, который я отправляю на печать. Этот QGraphicsScene содержит данные бейджа - слева фото, справа текстовые данные. Как сделать так, чтобы печать происходила не всю ширину листа, а только на половину листа? Ну то есть, чтобы пользователь ничего не настраивал в окне отправки на печать, а само изображение печаталось ну если не 1:1, то где-то в половину ширины листа. Надеюсь, более-менее понятен вопрос?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 27.6.2011, 15:29
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


C размерами бумаги разобрался. Предыдущий вопрос решается следующим образом: вызовом функции setPageSize(<размер бумаги>). Я вызываю так:
_printer -> setPageSize(QPrinter::A6);

В ассистенте написано, что если принтер не поддерживает такой формат, то печатается на размере по-умолчанию (как правило, А4). Вопрос, а из-за чего может не приняться указанный размер А6, если все-таки принтер поддерживает данный формат?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 29.6.2011, 6:22
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


гм... Ну фотопринтеры поддерживают такой масштаб. Но может все-же лучше разместить картинку на листе А4 с необходимым изменением размера?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 29.6.2011, 8:30
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(silver47 @ 29.6.2011, 7:22) *
гм... Ну фотопринтеры поддерживают такой масштаб. Но может все-же лучше разместить картинку на листе А4 с необходимым изменением размера?

А как еще можно поменять размеры для печати?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 29.6.2011, 11:46
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(AD @ 29.6.2011, 11:30) *
А как еще можно поменять размеры для печати?


Касательно QGraphicsView я даже и не знаю... не разбирался еще. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mihailikus
  опции профиля:
сообщение 9.9.2011, 18:41
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 25.2.2010
Пользователь №: 1482

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(AD @ 27.6.2011, 16:29) *
C размерами бумаги разобрался. Предыдущий вопрос решается следующим образом: вызовом функции setPageSize(<размер бумаги>). Я вызываю так:
_printer -> setPageSize(QPrinter::A6);

В ассистенте написано, что если принтер не поддерживает такой формат, то печатается на размере по-умолчанию (как правило, А4). Вопрос, а из-за чего может не приняться указанный размер А6, если все-таки принтер поддерживает данный формат?

Для аналогичной цели использую обычную функцию scene->render с полным списком параметров:
QRectF region = printer.pageRect();
QRectF current - ширина вычисляется как отношение сторон: выбранный размера страницы (А4 - 210 мм) делим на желаемый размер бэйджа и умножаем на region.width
высота - высота вашего бейджа
myScene->render(&painter, region, current, Qt::KeepAspectRatio);

Таким образом можно получить не примерные, а точные размеры фигуры на печати.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 8:10