Я работаю над печатью с помощью Qt C ++. Но я обнаружил проблему, что маржа не работает, как ожидалось. Здесь я использовал конфигурацию QPrinter.
QPrinter *pr = new QPrinter(QPrinterInfo::printerInfo("Canon iP2700 series"));
pr->setPageSize(QPrinter::A4);
pr->setFullPage(true);
pr->setPageMargins(5, 5, 5, 5, QPrinter::Millimeter);
QTextDocument *d = new QTextDocument(this);
d->setHtml("<i>Try printing from QT</i>");
d->print(pr);
И результирующее поле действительно далеко от края (оно должно быть 5 мм), я также пытаюсь напечатать его на реальном принтере. И кажется, что принтер имеет внутреннее поле, и поле, которое я установил для принтера, будет добавлено к внутреннему полю.
В моем выпуске внутренний запас составляет 20мм. Поэтому, если я установлю поле принтера на 10 мм, то при печати оно будет на 30 мм.
Есть ли у кого-нибудь опыт по этому поводу? Как сделать маржу работает?
PS: я использую Qt 5.5 VC 2013.
После прочтения немного углубился в документацию. Это говорит о том, что QTextDocument добавит 20 мм поля при печати.
По умолчанию для содержимого документа установлено поле 2 см.
И мне нужно установить размер страницы перед печатью.
Других решений пока нет …