vs+qt5.0 使用poppler-qt5 操作库获取pdf所有文本输出到txt操作

先获取poppler库,编译出lib与dll,配置好依赖环境,获取某页所有文本:

QList<QString> PDFkitEngine::GetText(int nPageNum)

{

QList<QString> lstText;

Poppler::Page* pPage = NULL;

pPage = GetPage(nPageNum);

if (pPage == nullptr)

{

return lstText;

}

QList<Poppler::TextBox* > lstTexts = pPage->textList();

if (lstTexts.count() == 0)

{

return lstText;

}

for (int i = 0;i < lstTexts.count();i++)

{

lstText.append(lstTexts.at(i)->text());

}

return lstText;

}

输出到txt文本:

void PDFkitEngine::outputText(const QString& strfileName, QList<QString>& vecText)

{

QFile file(strfileName);

if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))

{

return;

}

QTextStream textStream(&file);

for (auto& _info : vecText)

{

textStream << _info << endl;

}

file.close();

}

测试效果是可以将pdf文本全部读出来,并且成功的输出到文本文件,但是有点瑕疵是,pdf读出来的一行数据内容可能会分成2行或者多行,但是文本获取没有问题

相关推荐
Junfeng的技术笔记5 小时前
基于 C++/Qt 的雷达回波信号检测与测距仿真系统
qt
Quz5 小时前
QML TableView:自定义样式与排序表格
qt
Quz5 小时前
QML TableView:可编辑表格与 SQLite 数据持久化
qt·sqlite
Quz5 小时前
QML ListView:C++ 数据模型与 ProxyModel 实时过滤
qt
Quz5 小时前
QML ListView 入门:自定义样式与数据交互
qt
cpp_learner5 小时前
QT 隐藏式密码鉴权:一键开启管理员模式
qt
慧都小项6 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
Quz6 天前
QML SwipeDelegate 滑动委托
qt
huaweichenai6 天前
spring boot操作PDF
java·spring boot·pdf
Quz6 天前
QML 列表中的四种委托:ItemDelegate、CheckDelegate、RadioDelegate、SwitchDelegate
qt