4

HTMLファイルをPDFに変換しようとしています。全体的なアイデアは、多くのページでpdfを作成し、最初のページにHTMLファイルの内容を入力することです。現在、私はまさにそれを行おうとしています。コードは次のとおりです。

  #include "qprinterexample.h"
    #include <QtGui/QApplication>
    #include <QTextDocument>
    #include <QTextStream>
    #include <QFile>
    #include <QPrinter>
    #include <QDir>

   int print(){
    const int highQualityDPI = 300;
    QDir::setCurrent(QCoreApplication::applicationDirPath());

    QFile  htmlFile ("ejemplo.htm");
    if (!htmlFile.open(QIODevice::ReadOnly | QIODevice::Text)){
        return -1;
    }

    QString htmlContent;
    QTextStream in(&htmlFile);
    in >> htmlContent;

    QTextDocument *document = new QTextDocument();
    document->setHtml(htmlContent);

    QPrinter printer(QPrinter::HighResolution);
    printer.setPageSize(QPrinter::A4);
    printer.setOutputFormat(QPrinter::PdfFormat);

    printer.setOutputFileName("output.pdf");

    document->print(&printer);
    delete document;
    return 0;
}

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QPrinterExample w;
        if(print()<0) return -1;
        w.show();
        return a.exec();
    }

しかし、出力PDFを確認すると、ページ番号1が一番下にある、空のページです。私は何が間違っているのですか?

また、QTextStreamを使用すると、「

4

1 に答える 1

4

使用する

 htmlContent=in.readAll();

それ以外の

 in >> htmlContent;

これはうまくいくはずです!

于 2012-05-22T07:17:15.027 に答える