ドキュメントを別の出力形式で印刷する際に問題があります。同じドキュメントを(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 形式のテキストの位置を決めたことです。ネイティブ形式で印刷すると、テキストがグリッドとの位置合わせを失います。
ページ余白を削除または追加するいくつかのテストを行いましたが、成功しませんでした。私が興味を持っている唯一のことは、配置を維持することです。誰でも私に提案はありますか?
私の問題をうまく説明できたと思います。前もって感謝します。