2016-06-22 22 views
2

Qt C++で印刷を行っています。しかし、マージンが期待どおりに機能しないという問題がありました。ここで私が使用したQPrinterの設定。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); 

結果のマージンは実際にエッジから離れています(5mmにする必要があります)。実際のプリンタで印刷してみます。プリンタには内部余白があり、プリンタに設定した余白は内部余白に追加されます。

私の問題では、内部余白は20mmです。だから私は10ミリメートルに印刷マージンを設定すると、それが印刷されるとき、紙の余白は30ミリメートルです。

誰もこれについての経験がありますか?どのようにマージンを作るには?

PS:私はQt 5.5 VC 2013を使用しています。

+2

これはQtのバグかもしれません。https://bugreports.qt.io/browse/QTBUG-32987 – demonplus

+1

奇妙なことに、このバグは2013であり、修正されていません。 – Apin

+0

これに対応する方法はありますか? – EJoshuaS

答えて

1

ドキュメントを少し深く読んだ後、それは、QTextDocumentが印刷時に20mmのマージンを追加するということです。

は、デフォルトでは2cmのマージンは、文書の内容

の周りに設定されていると私は印刷その前にページサイズを設定する必要があります。

関連する問題