QT自带PDF库可以方便的打开PDF文件,并将文件解析为QImage,相比网上提供的开源库,QT自带PDF库使用更方便,也更加可靠,然而,QT自带PDF库的使用却不同于其他通用库的使用,具备一定的技巧。
1. 安装
QTPDF在QT中属于QWebEngine ,在安装时一定要选择“Qt WebEngine”和“Sources”
安装完成后,在QT的安装目录lib下就多了QT PDF相关的静态库
2. 环境搭建
由于QT pdf文件的头文件位于src目录下,所以要将相关的头文件拷贝到QT的Include目录下
将文件夹C:\Qt\5.15.0\Src\qtwebengine\src\pdf拷贝到C:\Qt\5.15.0\msvc2019_64\include
为了QT头文件编译时能够通过,将C:\Qt\5.15.0\Src\qtwebengine\src拷贝到目录C:\Qt\5.15.0\Src下
3. 工程环境配置
为了链接能够通过,需在工程中增加QT模块的设置和工程库
4. QPDFDocument的使用
引用头文件
#include <QtPdf/qpdfdocument.h>
利用QPdfDocument读取pdf文件并转化为QImage
QString FileName = QFileDialog::getOpenFileName(this, nullptr, "E:/CAD files/PDF/", "PDF Files(*.*)");
if (FileName.isEmpty())
{
return;
}
QPdfDocument* document = new QPdfDocument;
document->load(FileName);
int totalPage = document->pageCount();
m_pdfImageList.clear();
for (int page = 0; page < totalPage; page++)
{
QSizeF size = document->pageSize(page);
QImage image = document->render(page, QSize(size.width(), size.height()));
m_pdfImageList.push_back(image);
}
document->close();
显示QImage
QImage image = m_pdfImageList[m_CurrentPage];
ui.labelImage->clear();
ui.labelImage->setPixmap(QPixmap::fromImage(image));
5. 测试效果