? ? ? QT自帶PDF庫可以方便的打開PDF文件,并將文件解析為QImage,相比網(wǎng)上提供的開源庫,QT自帶PDF庫使用更方便,也更加可靠,然而,QT自帶PDF庫的使用卻不同于其他通用庫的使用,具備一定的技巧。
1. 安裝
? ? ? QTPDF在QT中屬于QWebEngine ,在安裝時一定要選擇“Qt WebEngine”和“Sources”
? ? ? ?安裝完成后,在QT的安裝目錄lib下就多了QT PDF相關(guān)的靜態(tài)庫
2.? 環(huán)境搭建
? ? 由于QT pdf文件的頭文件位于src目錄下,所以要將相關(guān)的頭文件拷貝到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. 工程環(huán)境配置
? ? 為了鏈接能夠通過,需在工程中增加QT模塊的設(shè)置和工程庫
4. QPDFDocument的使用
? ? ? 引用頭文件
? ??
#include <QtPdf/qpdfdocument.h>
? ? 利用QPdfDocument讀取pdf文件并轉(zhuǎn)化為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. 測試效果
?文章來源地址http://www.zghlxwxcb.cn/news/detail-633215.html文章來源:http://www.zghlxwxcb.cn/news/detail-633215.html
?
到了這里,關(guān)于QT自帶PDF庫的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!