是否可以在Qt中制作不同页面大小的pdf
Is it possible to make a pdf with different page size in Qt?
如果页面的大小相同,那么没有问题,但我需要页面大小应该是图像的大小(这是可变的),
void DgJpgToPdf::convertToPdf( const QStringList& theImagePathList, const QString& theOutputFileName )
{
QPrinter printer;
printer.setOrientation(QPrinter::Portrait);
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setOutputFileName( theOutputFileName );
QPainter painter;
painter.begin( &printer );
//printer.newPage();
foreach( QString fileName, theImagePathList ){
QImage imgObj( fileName );
printer.setPaperSize( QSizeF(imgObj.width(), imgObj.height()), QPrinter::DevicePixel );
painter.drawImage( 0, 0, imgObj );
printer.newPage();
}
painter.end();
}
您可能希望使用QPdfWriter
而不是QPrinter
。你必须为图像选择一个PPI,但如果你想以96 PPI保存,你可以做一些类似的事情
QPdfWriter pdfWriter(theOutputFileName);
pdfWriter.setTitle(theDocumentTitle);
pdfWriter.setCreater(yourApplicationName);
const qreal horizontalMarginMM = 2.0; // 2mm margin on each side
const qreal verticalMarginMM = 2.0;
QPagedDevice::Margins margins;
margins.left = margins.right = horizontalMarginMM;
margins.top = margins.bottom = verticalMarginMM;
pdfWriter.setMargins(margins);
bool newPage = false;
QPainter painter;
painter.begin(&pdfWriter);
foreach (const QString& fileName, theImagePathList) {
QImage imageObj(fileName);
if (newPage)
pdfWriter.newPage();
newPage = true;
qreal pageWidthMM = imgObj.width() / 96.0 * 25.4 + 2*horizontalMarginMM;
qreal pageHeightMM = imgObj.height() / 96.0 * 25.4 + 2*verticalMarginMM;
imgObj.setDotsPerMeterX(96.0 / 25.4 * 1000.0);
imgObj.setDotsPerMeterY(96.0 / 25.4 * 1000.0);
pdfWriter.setPageSizeMM(QSizeF(pageWidthMM, pageHeightMM));
painter.drawImage(0, 0, imageObj);
}
painter.end();
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用 C++/Qt(已知密码)打开加密的 PDF
- Qt 5.8 and Pdf.js error
- 从QT打印PDF文件
- Qt:自动生成电源点报告或可编辑的pdf报告
- 使用 QT 打印为 pdf
- 如何使用QT程序中的默认应用程序打开使用相对路径的PDF
- 使用 Qt 打印 PDF 文件
- 在Qt中使用将pdf图像转换为jpg图像
- 是否可以在Qt中制作不同页面大小的pdf
- 使用qt+qprinter将工作url添加到pdf中
- Qt 输出 pdf 为空
- 使用 Qt 将 HTML 转换为 PDF
- Qt创建pdf示例 - 无法使其工作
- 如何在Qt中打印pdf文件
- 创建pdf与可编辑的形式在Qt
- 在qt或c++中进行pdf到txt的转换