bool Phantom::render(const QString &fileName) { QFileInfo fileInfo(fileName); QDir dir; dir.mkpath(fileInfo.absolutePath()); if (fileName.endsWith(".pdf", Qt::CaseInsensitive)) return renderPdf(fileName); QSize viewportSize = m_page.viewportSize(); QSize pageSize = m_page.mainFrame()->contentsSize(); QSize bufferSize; if (!m_clipRect.isEmpty()) { bufferSize = m_clipRect.size(); } else { bufferSize = m_page.mainFrame()->contentsSize(); } if (pageSize.isEmpty()) return false; QImage buffer(bufferSize, QImage::Format_ARGB32); buffer.fill(qRgba(255, 255, 255, 0)); QPainter p(&buffer); p.setRenderHint(QPainter::Antialiasing, true); p.setRenderHint(QPainter::TextAntialiasing, true); p.setRenderHint(QPainter::SmoothPixmapTransform, true); m_page.setViewportSize(pageSize); if (!m_clipRect.isEmpty()) { p.translate(-m_clipRect.left(), -m_clipRect.top()); m_page.mainFrame()->render(&p, QRegion(m_clipRect)); } else { m_page.mainFrame()->render(&p); } p.end(); m_page.setViewportSize(viewportSize); if (fileName.toLower().endsWith(".gif")) { return exportGif(buffer, fileName); } return buffer.save(fileName); }
void renderReport(HPDF_Doc pdf) { renderPdf(Wt::WString::tr("report.example"), pdf); }