Qt-创建PDF文件

Qt-创建PDF文件,qt,pdf,Qt,Pdf,我想在Qt控制台应用程序中创建一个PDF文件。但创建文件的文件大小为0B,我无法打开它。 GUI应用程序中的相同代码也可以工作。控制台中的代码和gui应用程序之间的区别在哪里?我应该怎么做才能使代码在控制台应用程序中工作? 提前谢谢你的帮助 #include <QCoreApplication> #include <QPrinter> #include <QTextDocument> int main(int argc, char *argv[]) {

我想在Qt控制台应用程序中创建一个PDF文件。但创建文件的文件大小为0B,我无法打开它。 GUI应用程序中的相同代码也可以工作。控制台中的代码和gui应用程序之间的区别在哪里?我应该怎么做才能使代码在控制台应用程序中工作? 提前谢谢你的帮助

#include <QCoreApplication>
#include <QPrinter>
#include <QTextDocument>

int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);

    QString html = "<h1>Hi!</h1>";

    QTextDocument document;
    document.setHtml(html);

    QPrinter printer(QPrinter::PrinterResolution);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName("test.pdf");

    document.print(&printer);

    return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QString html=“嗨!”;
QTextDocument文件;
setHtml(html);
QPrinter打印机(QPrinter::PrinterResolution);
打印机.setOutputFormat(QPrinter::PdfFormat);
打印机.setOutputFileName(“test.pdf”);
文档。打印(&打印机);
返回a.exec();
}
在这里它正在工作

#include <QApplication>
#include <QPrinter>
#include <QTextDocument>

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);

    QString html = "<h1>Hi!</h1>";

    QTextDocument document;
    document.setHtml(html);

    QPrinter printer(QPrinter::PrinterResolution);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName("test.pdf");

    document.print(&printer);

    return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
QString html=“嗨!”;
QTextDocument文件;
setHtml(html);
QPrinter打印机(QPrinter::PrinterResolution);
打印机.setOutputFormat(QPrinter::PdfFormat);
打印机.setOutputFileName(“test.pdf”);
文档。打印(&打印机);
返回a.exec();
}
因此,看起来您只需通过
QApplication
更改
QCoreApplication

就可以了

#include <QApplication>
#include <QPrinter>
#include <QTextDocument>

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);

    QString html = "<h1>Hi!</h1>";

    QTextDocument document;
    document.setHtml(html);

    QPrinter printer(QPrinter::PrinterResolution);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName("test.pdf");

    document.print(&printer);

    return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
QString html=“嗨!”;
QTextDocument文件;
setHtml(html);
QPrinter打印机(QPrinter::PrinterResolution);
打印机.setOutputFormat(QPrinter::PdfFormat);
打印机.setOutputFileName(“test.pdf”);
文档。打印(&打印机);
返回a.exec();
}

因此,看起来您只需通过
QApplication

更改
QCoreApplication
,创建PDF文件可能需要字体度量等内容。如果您的控制台应用程序没有生成任何警告/错误消息,我会感到惊讶。是的,开始时只有一条错误消息是“QFont:setPixelSize:PixelSize创建PDF文件可能需要字体度量等内容。如果控制台应用程序没有生成任何警告/错误消息,我会感到惊讶。是的,在开始时,只有一条错误消息是QFont:setPixelSize:PixelSize这行吗?我试图在一个没有显示的嵌入式应用程序中使用它,而我得到的只是“EGLFS:Failed to open/dev/fb0”?这样行吗?我试图在一个没有显示的嵌入式应用程序中使用它,我得到的只是“EGLFS:Failed to open/dev/fb0”??