C++ 如何在Qt中打印pdf文件
我曾尝试编写一些代码来使用Qt打印pdf文件,但不知何故它不起作用。 如果有人对解决这个问题有任何想法,请提供您的建议C++ 如何在Qt中打印pdf文件,c++,qt,pdf,printing,C++,Qt,Pdf,Printing,我曾尝试编写一些代码来使用Qt打印pdf文件,但不知何故它不起作用。 如果有人对解决这个问题有任何想法,请提供您的建议 void ChartViewer::onprintBtnClicked(){ String filename = QFileDialog::getOpenFileName(this,"Open File",QString(),"Pdf File(*.pdf)"); qDebug()<<"Print file name is "<<fi
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;
}
}
void ChartViewer::onprintbtclicked(){
字符串filename=QFileDialog::getOpenFileName(这是“打开的文件”,QString(),“Pdf文件(*.Pdf)”;
qDebug()exec()==QDialog::Accepted){
文本编辑->打印(&打印机);
}
删除dlg;
}
}
我不明白你的问题,但现在我明白了。你想用Qt打印PDF文件,你不想打印成PDF,对吗
Qt不支持加载和显示PDF。
对于Qt中的PDF支持,您需要外部库poppler。检查
Poppler允许您将PDF文件渲染成QImage,并且可以轻松打印QImage
下面是如何将文本打印到PDF文件中
我试着编辑你的代码,这样我可以测试它一点,它为我工作,你能检查吗?
可以尝试检查QPrinter::isValid()
是否在您的环境中返回true
#包括
#包括
int main(int argc,字符**argv){
QApplication应用程序(argc、argv);
QTextEdit父代;
setText(“我们就是世界!”);
parent.show();
QString filename=QFileDialog::getOpenFileName(&parent,“打开文件”,QString(),“Pdf文件(*.Pdf)”);
qDebug()发布不起作用的代码,否则我们无法帮助您。请编辑您的问题,将代码包含在其中。不要忘记使用{}设置格式
编辑器中的按钮。@user671112我已将您的代码添加到您的问题中。下次自己添加。不要添加到评论中。@Bart:-当然可以,Bart…谢谢您的帮助。@user671112耐心!!虽然StackOverflow通常会以惊人的速度给出答案,但不要在发布后一小时内用“请帮助”来评论。此外,您还可以编辑您的帖子和删除您的评论。因此,您可以使用源代码删除您的长篇评论,以使此问题更清晰…亲爱的Thomas,非常感谢您的回答。我将对此进行检查并返回2 u。亲爱的Thomas,请帮助我在windows系统的打印机上打印pdf文件m environment?@user671112上面的代码在Windows环境中适用吗?您是否检查QPrinter::isValid()是否返回true?Qt是跨平台的,因此应该可以工作。亲爱的Lukas,它不适用于我,因为我收到警告“QPrintDialog:无法在非本机打印机上使用”而且无法打印pdf文件。我想我们不能使用QTextedit在QT中打印pdf文件(因为我从谷歌得到了信息)。如果可能的话,请您指导我如何在windows环境下通过打印机打印pdf文件。我是初学者,对此我没有任何更多的想法,但我正在尽最大努力。谢谢您的回复。您好,@user671112 Hm.。关于对话框,您是对的,我在Linux上测试过,我现在没有windows机器。但如果需要,您可以不使用打印对话框进行打印。只需将QPrintDialog相关行注释掉,然后仅调用parent.print(&printer);