1

ドキュメントを別の出力形式で印刷する際に問題があります。同じドキュメントを(pdfで)保存し、通常のプリンターで印刷する必要があります。このドキュメントには、svg 形式でペイントしたグリッド、いくつかのフィールド、および画像があります。

このドキュメントを作成する関数は、次の構造を除いて同じです。

printer->setOutputFormat(QPrinter::NativeFormat);

コードは非常に単純です。

QSvgRenderer *r;
r = new QSvgRenderer(QString("PrintModelWithoutNote.svg"));

QPrinter *printer = new QPrinter();
QPainter *paint = new QPainter();

if(pdf){
    printer->setOutputFormat(QPrinter::PdfFormat);
    printer->setOutputFileName("pdf_file.pdf");
}else{
    printer->setOutputFormat(QPrinter::NativeFormat);
}

paint->begin(printer);
r->render(paint);

paint->drawText(QPointF(10, 10), "Test1");
paint->drawText(QPointF(50, 50), "Test2");
paint->end();

問題は、svg のグリッドに合わせて、pdf 形式のテキストの位置を決めたことです。ネイティブ形式で印刷すると、テキストがグリッドとの位置合わせを失います。

ページ余白を削除または追加するいくつかのテストを行いましたが、成功しませんでした。私が興味を持っている唯一のことは、配置を維持することです。誰でも私に提案はありますか?

私の問題をうまく説明できたと思います。前もって感謝します。

4

0 に答える 0