Вывод Qt pdf пуст
Я использовал самый простой код, который я мог найти при печати 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;
}
1 ответ
Решение
Ваше приложение должно аварийно завершить работу, когда вы пытаетесь создать базовое приложение с графическим интерфейсом, например QTextDocument
, Этот код прекрасно работает для меня:
main.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