• 7320阅读
  • 8回复

[提问]qt的QTextDocument打印出来是空白纸,求救 [复制链接]

上一主题 下一主题
离线acidy
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-20



// 打印故障报告
void QFaultReport::PrintReport()
{
#ifndef QT_NO_PRINTER
// 读取文件
if (!QFile::exists("report.html"))
{
  return ;
}
QFile file("report.html");
if (!file.open(QFile::ReadOnly))
{
  return ;
}
QByteArray data = file.readAll();
QTextCodec *codec = Qt::codecForHtml(data);
QString str = codec->toUnicode(data);
file.close();

QPrinter printer(QPrinter::HighResolution);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::NativeFormat);
printer.setFontEmbeddingEnabled(true);
doc.setHtml(str);

// 打印预览
//QPrintPreviewDialog dialog(&printer);
//connect(&dialog, SIGNAL(paintRequested(QPrinter*)),this, SLOT(Print(QPrinter*)));
//dialog.exec();

// 打印
//printer.setOutputFileName("report.pdf");
QPrintDialog dialog(&printer);
if (dialog.exec())
{
  QPainter painter(&printer);
  if (! painter.begin(&printer)) // 准备打印
  {
   return ;
  }
  doc.print(&printer); // 开始打印
  painter.end(); //关闭打印
}
#endif
}

// 打印预览
void QFaultReport::Print(QPrinter *printer)
{
#ifdef QT_NO_PRINTER
Q_UNUSED(printer);
#else
doc.print(printer);
#endif
}




刚谢谢帮解决了 打印预览空白,但是现在打印还是空白呀?打印又要怎么改呢?一直没想明白
离线cthawdf

只看该作者 1楼 发表于: 2011-12-20
你加qDebug看看str有没有数据
离线acidy
只看该作者 2楼 发表于: 2011-12-20
引用第1楼cthawdf于2011-12-20 19:04发表的  :
你加qDebug看看str有没有数据



qdebug

是有数据的
离线acidy
只看该作者 3楼 发表于: 2011-12-20
离线cthawdf

只看该作者 4楼 发表于: 2011-12-20
你自己调试过了吗  找到问题出来没有
离线acidy
只看该作者 5楼 发表于: 2011-12-20
回 4楼(cthawdf) 的帖子
找到了,多了几句

if (dialog.exec())
{
  QPainter painter(&printer);
  if (! painter.begin(&printer)) // 准备打印
  {
   return ;
  }
  doc.print(&printer); // 开始打印
  painter.end(); //关闭打印
}


改成

if (dialog.exec())
{
  doc.print(&printer); // 开始打印
}

就可以了


本来这个QPainter 我是用qwebview调试的时候用到,但是qwebview打印中英文混合html中文会重叠,我尝试img图片打印,后来发现图片打印不可行,改成qtextdocument打印

没明白的是,为什么这里有了QPainter 就导致空白呢?
离线acidy
只看该作者 6楼 发表于: 2011-12-20
qwebview打印中英文混合html中文会重叠,这个问题你遇到过吗?是不是Qt自身的bug啊?
离线princeholy
只看该作者 7楼 发表于: 2012-01-12
回 4楼(cthawdf) 的帖子
你在线吗 能加我QQ吗  我遇到这个问题了   希望能和你讨论一下
1131321715
离线cthawdf

只看该作者 8楼 发表于: 2012-01-12
回 7楼(princeholy) 的帖子
你遇到的问题是什么
快速回复
限100 字节
 
上一个 下一个