lek*_*raj 5 c++ printing pdf qt
我曾尝试编写一些代码来使用Qt打印pdf文件但不知何故它无法正常工作.如果有人有任何想法解决这个问题,请提供您的提示.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白你的问题,但现在我明白了.你想用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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22099 次 |
| 最近记录: |