QTextDocument 内に QImage を挿入し、PDF ファイルとして保存したいと思います。これを行うには、 QTextCursor::insertImage ( const QImage & image, const QString & name = QString() ) メソッドを使用しますが、画像はピクセル化されています。同じ画像と QTextCursor::insertImage ( const QTextImageFormat & format, QTextFrameFormat::Positionalignment ) メソッドを使用すると問題ありません。
以下に例を示します。
//! Initialise l'imprimante
QPrinter printer;
printer.setOutputFileName(fileDir);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A4);
printer.setPageMargins(20,20,20,20, QPrinter::Millimeter);
printer.setColorMode(QPrinter::Color);
printer.setResolution(300);
//! Initialise le document et le style
//! Document
QTextDocument *doc = new QTextDocument();
doc->setPageSize(printer.paperSize(QPrinter::Millimeter));
doc->setDefaultFont(QFont("Arial", 4));
QTextCursor cursor(doc);
QTextImageFormat picture1;
picture1.setName("./imagename.png");
picture1.setWidth(150);
QImage picture2;
picture2.load("./imagename.png");
picture2 = picture2.scaledToWidth(150);
cursor.insertImage(picture1,QTextFrameFormat::InFlow);
cursor.insertText("\n");
cursor.insertImage(picture2);
doc->print(&printer);
これは、私の QTextDocument への QTextImageFormat 挿入と QImage 挿入の違いを示すスクリーン キャプチャです。
画像は上記のコードに正確には対応していません。
ありがとう