如果您想要删除最后一页的空白页,可以在循环结束后判断当前是否是最后一页,如果是则不创建新的页面。修改代码如下:
#include <QApplication>
#include <QDebug>
#include <QImage>
#include <QPdfWriter>
#include <QPainter>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 获取本地多张图片路径
QStringList imagePaths;
imagePaths << "path/to/image1.jpg" << "path/to/image2.jpg" << "path/to/image3.jpg";
// 创建PDF写入器
QPdfWriter pdfWriter("output.pdf");
pdfWriter.setPageSize(QPageSize(QPageSize::A4));
QPainter painter(&pdfWriter);
int totalImages = imagePaths.size();
// 遍历每个图片路径,绘制到PDF页面
for (int i = 0; i < totalImages; ++i) {
const QString& imagePath = imagePaths[i];
QImage image(imagePath);
if (!image.isNull()) {
painter.drawImage(QRectF(0, 0, pdfWriter.width(), pdfWriter.height()), image);
if (i != (totalImages - 1)) { // 如果不是最后一页,则创建新的页面
if (painter.isActive())
pdfWriter.newPage();
}
}
}
painter.end();
qDebug() << "PDF generated successfully.";
return app.exec();
}
通过增加一个if
条件来判断是否是最后一页,如果不是,则调用newPage()
函数创建新的页面。这样可以确保最后一页没有空白页。
希望这次修改符合您的需求!如果还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问