2017-06-26 17 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(); 
} 

あなただけQApplicationQCoreApplicationを変更する必要がありますようなので、それが見えます。

+0

素晴らしい!ご助力ありがとうございます!!! Monika – Andmon

+0

これは機能しますか?私は表示せずに埋め込みアプリケーションでこれをスローしようとすると、 "EGLFS:/ dev/fb0を開くことができませんでした"というメッセージが表示されます。 –

関連する問題