c – QTextDocument中用于信封的页码
发布时间:2020-12-16 09:40:44 所属栏目:百科 来源:网络整理
导读:我正在编写一个将地址直接打印到信封上的应用程序.我正在使用QTextDocument,问题是它的方法print()添加了页码,这在信封中是不正确的. 一些代码,以防您需要它: void MainWindow::print(){ QString addressText = textEdit-document()-toPlainText(); envelop
我正在编写一个将地址直接打印到信封上的应用程序.我正在使用QTextDocument,问题是它的方法print()添加了页码,这在信封中是不正确的.
一些代码,以防您需要它: void MainWindow::print() { QString addressText = textEdit->document()->toPlainText(); envelopeDocument = new QTextDocument(this); printer.setResolution(QPrinter::HighResolution); printer.setPrinterName("OKI B6200(PCL6)"); printer.setOrientation(QPrinter::Landscape); QFont font("Trebuchet MS"); switch (envelopeComboBox->currentIndex()){ case 0: font.setPointSize(12); envelopeDocument->setDefaultFont(font); envelopeDocument->setPlainText(addressText); printer.setPaperSize(QSizeF(114,225),QPrinter::Millimeter); printer.setPageMargins(120,60,20,15,QPrinter::Millimeter); break; case 1: font.setPointSize(14); envelopeDocument->setDefaultFont(font); envelopeDocument->setPlainText(addressText); printer.setPaperSize(QSizeF(184,262),QPrinter::Millimeter); printer.setPageMargins(140,100,QPrinter::Millimeter); break; case 2: font.setPointSize(16); envelopeDocument->setDefaultFont(font); envelopeDocument->setPlainText(addressText); printer.setPaperSize(QSizeF(227,324),QPrinter::Millimeter); printer.setPageMargins(170,120,30,40,QPrinter::Millimeter); break; } QPrintPreviewDialog preview (&printer,this); preview.setWindowFlags(Qt::Window); connect(&preview,SIGNAL(paintRequested(QPrinter *)),SLOT(printPreview(QPrinter *))); preview.exec(); } void MainWindow::printPreview(QPrinter *p) { envelopeDocument->print(p); } 谢谢! 解决方法
您可以尝试以下代码,它可能会帮助您……
QPrinter printer(QPrinter::ScreenResolution); printer.setPaperSize(QPrinter::A4); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName( fileName ); // printer.setPageMargins(0.925,0.8,0.5,QPrinter::Inch); QSizeF paperSize; paperSize.setWidth(printer.width()); paperSize.setHeight(printer.height()); document->setHtml(html); document->setPageSize(paperSize); // the document needs a valid PageSize document->print(&printer); 当您引用print()的源代码时,您将认识到只有在没有有效的QTextDocument.pageSize()时才会定义QPointF pageNumberPos.在printPage()中,如果pageNumberPos不为null,则只打印页码.因此,只需设置一个有效的QTextDocumtent.pageSize(),您的打印文档上就没有页码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- PostgreSQL9.0新特性介绍: alter default privileges,解决
- c – Qt:当主窗口被模态QDialog阻塞时,如何关注从主窗口创
- 举例理解Ruby on Rails的页面缓存机制
- c# – 以CSV格式显示逗号而不使用逗号字符
- cocos2dx 3.2 getBoundingBox和getTextureRect
- swift – 如何使用ARKit检测触摸并显示新的SCNPlane?
- c# – 使用2个参数注入构造函数不起作用
- 9.3 Swift结构体常量和类常量的存储属性
- ruby-on-rails – 将CKEditor与Rails 3.1 Asset Pipline集成
- 使用JAXB提取XML元素的内部文本