循环打印图像

问题描述 投票:0回答:1

我一直在尝试打印整个文件夹的图像,这是项目的第一阶段,但一直无法正常工作。这些图像被命名为“ batch_X.jpg”(但是如果工作得更好,文件类型可以更改),并且为了进行测试,我一直将其打印为pdf,而不浪费数千张纸。我可以使循环完成,并将名为“ testX”的文件保存到输出文件夹中,但是它们始终不是空白,而是我要打印的图像。

这是我一直在运行的代码,并在各处注释掉所有行

QApplication app(int argc, char** argv());
    for (int q = 1; q <= 11; q++)
    {
    //int q = 4;
   QString fileName=QStringLiteral("/Users/user/Desktop/imageTests⁩/output/batch_%1.jpg").arg(q);         
            // QPrinter printer;
            //QPrintDialog *dlg = new QPrintDialog(&printer,0);
            //if(dlg->exec() == QDialog::Accepted) {
            QPrinter printer(QPrinter::ScreenResolution);
            printer.setResolution(3000);
            //printer.setPageLayout(page_layout);
            printer.setCopyCount(1);
            printer.setDoubleSidedPrinting(false);
            printer.setDuplex(QPrinter::DuplexNone);
            printer.setColorMode(QPrinter::Color);
            printer.setPageSize(QPrinter::Letter);
            printer.setPaperSize(QPrinter::Letter);
            printer.setPaperSource(QPrinter::Auto);
            //printer.setCreator("Inkjet Plumber");
            printer.setOrientation(QPrinter::Portrait);
            printer.setPageMargins(0.0, 0.0, 0.0, 0.0, QPrinter::Inch);
            //printer.setPageLayout(page_layout);
            QString outputFileName =              QStringLiteral("/Users/user/Desktop/testing/test%1.pdf").arg(q);
            printer.setOutputFileName(outputFileName);
                    printer.setOutputFormat(QPrinter::PdfFormat);
                    QImage img(fileName);
                    QPainter painter(&printer);
                    painter.drawImage(QPoint(0,0),img);
                    painter.end();
                    //QMessageBox::information(this, tr("Title"), QString(fileName));

            }
qt qpainter qprinter
1个回答
0
投票

您的代码看起来正确。它对我有效。我唯一要解决的是分辨率:

 printer.setResolution(300);
© www.soinside.com 2019 - 2024. All rights reserved.