如何在Qt中打印pdf文件
How to print pdf file in Qt
我试着写一些代码来打印pdf文件使用Qt,但不知何故它不工作。如果有人有任何办法解决这个问题,请提供你的建议。
void ChartViewer::onprintBtnClicked(){
String filename = QFileDialog::getOpenFileName(this,"Open File",QString(),"Pdf File(*.pdf)");
qDebug()<<"Print file name is "<<filename;
if(!filename.isEmpty()) {
if(QFileInfo(filename).suffix().isEmpty())
filename.append(".pdf");
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(filename);
QPrintDialog*dlg = new QPrintDialog(&printer,this);
if(textedit->textCursor().hasSelection())
dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection);
dlg->setWindowTitle(tr("Print Document"));
if(dlg->exec() == QDialog::Accepted) {
textedit->print(&printer);
}
delete dlg;
}
}
我不明白你的问题,但现在我明白了。你想用Qt打印PDF文件,你不想打印成PDF,对吧?
Qt不支持加载和显示PDF。对于Qt中的PDF支持,您需要外部库poppler。查看这篇文章。
Poppler允许你渲染PDF文件到QImage,你可以很容易地打印QImage这样的。
这是如何打印文本到PDF文件。
我试着编辑你的代码,这样我就可以测试一下,它对我有效,你能检查吗?也许可以尝试检查QPrinter::isValid()
是否在您的环境中返回true
。
#include <QtGui>
#include <QtCore>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QTextEdit parent;
parent.setText("We are the world!");
parent.show();
QString filename = QFileDialog::getOpenFileName(&parent,"Open File",QString(),"Pdf File(*.pdf)");
qDebug()<<"Print file name is "<<filename;
if(!filename.isEmpty()) {
if(QFileInfo(filename).suffix().isEmpty()) {
filename.append(".pdf");
}
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(filename);
QPrintDialog*dlg = new QPrintDialog(&printer,&parent);
dlg->setWindowTitle(QObject::tr("Print Document"));
if(dlg->exec() == QDialog::Accepted) {
parent.print(&printer);
}
delete dlg;
}
return app.exec();
}
相关文章:
- 如何循环打印顶点结构
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 如何在c++中打印目录
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在线编译器中的分段C++没有打印消息
- 如何使用打印到 PDF 打印机在 MFC 和 CView 中以编程方式打印而不提示输入文件名?
- 将 QTableWidget 内容打印为 PDF
- 从QT打印PDF文件
- 如何使用QPainter将多个Qwidgets在不同页面中打印到PDF
- 如何判断Microsoft打印到 PDF 打印机驱动程序何时完成
- 使用 QT 打印为 pdf
- 使用 Qt 打印 PDF 文件
- cmd.exe打开PDF并打印它
- 使用libharu在pdf中打印日语字符
- 在 Mac 上检测 PDF 打印
- Libharu pdf创建:如何知道打印文本的大小
- 使用MFC打印PDF文件
- 如何在Qt中打印pdf文件
- 使用 C++ 在打印机上可视化打印 PDF 文件
- 使用Boost.regex从目录中打印.pdf文件名