2017-06-26 96 views
0

我想在Qt控制檯應用程序中創建一個PDF文件。但創建的文件的文件大小是0B,我無法打開它。 GUI應用程序中的相同代碼有效。控制檯和gui應用程序中代碼的區別在哪裏?我應該如何使代碼在控制檯應用程序中工作? 感謝您的幫助!Qt - 創建PDF文件

#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(); 
} 
+0

創建PDF文件可能需要諸如字體指標等內容。如果您的控制檯應用程序不生成任何警告/錯誤消息,我會很驚訝。 –

+0

是的,在開始時只有一個錯誤消息是「QFont:setPixelSize:PixelSize <= 0(-2)」。所以我添加了:QFont myfont(「Times」,12,QFont :: Bold); document.setDefaultFont(myfont);並沒有再出現錯誤。 – Andmon

回答

1

這裏工作。

#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(); 
} 

所以它看起來像你剛纔通過QApplication改變QCoreApplication

+0

太棒了!非常感謝您的幫助!!! Monika – Andmon

+0

這工作?我試圖把它放在一個沒有顯示的嵌入式應用程序中,而我所得到的只是「EGLFS:無法打開/ dev/fb0」? –