LINUX.ORG.RU

задать размер бумаги QPrinter или gs


0

0

в программе (на QT 3.3.x) нужно создать postscript файл для его последующего вывода на принтер т.е непосредственно печатать будет совсем другая программа.
Использую класс QPrinter. Все работает просто замечательно, если бы не одна проблема.
Размер бумаги А3, но в принтер она должна вставляться не 297 x 420 а 420 x 297
т.е ее ширина больше чем длина, кто знает что такое принтер типа EPSON LX-1170 меня поймет.
setOrientation(QPrinter::Landscape);
не помогает, вернее он работает если бумага вставляется как 297 x 420.
Я думаю нужно указывать setOrientation(QPrinter::Portrait);
и как-то менять размер бумаги.
Пробовал покопать в сторону setPageSize(QPrinter::Custom); но что дальше с этим делать в доках не описанно.
PS может проблему можно решить не в формировании ps файла, а в его дальнейшей конвертации в epson команды.
Здесь я использую
gs -sDEVICE=epson -sOutputFile=tmp.epson -sPAPERSIZE=a3 -dNOPAUSE -dBATCH file.ps


А почему используешь Qt 3.3 ?
В 4.2 есть пример printpreview - там можно посмотреть как это делается.

UVV ★★★★★
()
Ответ на: комментарий от UVV

>>А почему используешь Qt 3.3 ?
потому что пишу под МСВС а там совсем недавно появился qt 3.3 (или 3.4)
и за это им БОЛЬШОЕ спасибо (в прошлом дистре была qt 2.x)
Ставить новую библиотеку нельзя, т.к программу сертифицировать нужно.

CL
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.