关于Qt打印html格式文件的问题

加盾男爵 2018-01-21 05:41:09
现在有个QTextEdit,利用html来显示一些文本内容,然后打印出来


void ATH::printReport()
{
QPrinter p;
p.setPageSize(QPrinter::A4);
QPrinterDialog pd(&p);
if(pd.exec() == QDialog::Accepted)
{
ath_TextEdit->print(&p);
}
}


然后用windows的xps打印机(在家里,没有实体打印机)打印出来差不多是这个样子

文本四周都有空白,比如文本里的横线,我是用类似这样的代码

QString htmlStr = tr("<hr />");
ath_TextEdit->setHtml(htmlStr);


我想问下,怎么样才能让打印出来的四周没有空白,比如我画的这条横线,怎么样才能让他画到页面的最左端和最右端
...全文
1280 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyangqingyun 2018-01-31
  • 打赏
  • 举报
回复
可以设置页边距
//调用打印机打印
    QPrinter printer;
    //设置输出格式
    printer.setOutputFormat(QPrinter::NativeFormat);
    //设置纸张规格
    printer.setPageSize(pageSize);

    //设置横向纵向及页边距
    if (landscape) {
        printer.setOrientation(QPrinter::Landscape);
        printer.setPageMargins(10, 10, 10, 10, QPrinter::Millimeter);
    } else {
        printer.setOrientation(QPrinter::Portrait);
        printer.setPageMargins(10, 10, 10, 11, QPrinter::Millimeter);
    }

    QPrintPreviewDialog preview(&printer);
    preview.setStyleSheet("QToolButton{background:none;margin:2px;padding:0px;border-width:0px;border-radius:0px;}QLineEdit{border-width:0px;}");
    preview.setWindowTitle("打印预览");
    connect(&preview, SIGNAL(paintRequested(QPrinter *)), this, SLOT(printView(QPrinter *)));
    preview.showMaximized();
    preview.exec();
Mr.Stone^_^ 2018-01-30
  • 打赏
  • 举报
回复
QPrinter pri; QTextDocument doc; QFont font ("宋体",7); doc.setDefaultFont(font); font.setBold(true); font.setPointSize(font.pointSize() + 1); doc.setDefaultFont(font); QSizeF s = QSizeF(pri.logicalDpiX() * (60/ 25.4), pri.logicalDpiY() * (297 / 25.4)); //设置打印大小 doc.setPageSize(s); pri.setOutputFormat(QPrinter::NativeFormat); doc.setHtml(html1); doc.print(&pri);
加盾男爵 2018-01-30
  • 打赏
  • 举报
回复
来人接分

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧