我一直在尝试打印整个文件夹的图像,这是项目的第一阶段,但一直无法正常工作。这些图像被命名为“ 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));
}
您的代码看起来正确。它对我有效。我唯一要解决的是分辨率:
printer.setResolution(300);