Qt 输出 pdf 为空

Qt output pdf is empty

本文关键字:为空 pdf 输出 Qt      更新时间:2023-10-16

我使用了我在Qt pdf打印上能找到的最简单的代码,它工作正常,没有任何错误。但是,当我尝试打开生成的pdf时,它抱怨pdf为空且无法打开。我不知道代码的哪个方面是错误的或可能过时了?我虽然这可能是权限问题,但正在创建 pdf 文件。下面是使用的代码:

更新完整代码

 #include <QCoreApplication>
 #include <QPrinter>
 #include <QTextDocument> 
int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QTextDocument doc;
 doc.setHtml( "<p>A QTextDocument can be used to present formatted text "
              "in a nice way.</p>"
              "<p align=center>It can be <b>formatted</b> "
              "<font size=+2>in</font> <i>different</i> ways.</p>"
              "<p>The text can be really long and contain many "
              "paragraphs. It is properly wrapped and such...</p>" );
  QPrinter printer;
  printer.setOutputFileName("../out.pdf");
  printer.setOutputFormat(QPrinter::PdfFormat);
  doc.print(&printer);
  printer.newPage();
 return 0;

}

当您尝试使用 GUI 控件实例化核心应用程序时,您的应用程序会崩溃,例如 QTextDocument .这段代码对我来说很好用:

主.cpp

#include <QGuiApplication>
#include <QPrinter>
#include <QTextDocument> 
int main(int argc, char **argv)
{
    QGuiApplication a(argc, argv);
    QTextDocument doc;
    doc.setHtml( "<p>A QTextDocument can be used to present formatted text "
            "in a nice way.</p>"
            "<p align=center>It can be <b>formatted</b> "
            "<font size=+2>in</font> <i>different</i> ways.</p>"
            "<p>The text can be really long and contain many "
            "paragraphs. It is properly wrapped and such...</p>" );
    QPrinter printer;
    printer.setOutputFileName("out.pdf");
    printer.setOutputFormat(QPrinter::PdfFormat);
    doc.print(&printer);
    printer.newPage();
    return 0;
}

main.pro

TEMPLATE = app
TARGET = main
QT += printsupport
SOURCES += main.cpp

构建和运行

qmake && ./main && ./main && okular out.pdf