PoDoFo从pdf中提取文本+坐标
PoDoFo Extract text + coords from a pdf
我已经尝试使用PoDoFo C++库提取文本和行(以及它们各自的坐标)有一段时间了。但我没有办法做到这一点。
这就是我目前所拥有的:
#include <iostream>
#include <stdio.h>
#include <vector>
#include <podofo/podofo.h>
using namespace PoDoFo;
using namespace std;
int main( int argc, char* argv[] )
{
const char* filename = "hello.pdf";
PdfVecObjects *x = new PdfVecObjects();
PdfParser parser(x, filename);
parser.ParseFile("hello.pdf");
for (TIVecObjects obj = x->begin(); obj != x->end(); obj++){
PdfObject * a = x->RemoveObject(obj);
// THIS IS MY PROBLEM VVVVVVVVVV
cout << a->Reference().ToString() << endl;
}
return 0;
}
然而,这只给了我难以置信的基本信息(似乎是对象编号)
DEBUG: Size=12
DEBUG: Reading numbers: 0 12
DEBUG: Reading XRef Section: 0 with 12 Objects.
DEBUG: Size=12
DEBUG: Reading numbers: 0 12
DEBUG: Reading XRef Section: 0 with 12 Objects.
1 0 R
2 0 R
3 0 R
4 0 R
5 0 R
6 0 R
7 0 R
8 0 R
9 0 R
10 0 R
11 0 R
我想打印出一个对象的坐标,以及它是一行还是一段文字。如果是文本,我也希望能够打印出文本。有谁比我更了解这个图书馆,知道我能做些什么来解决这个问题吗?
这个答案将向您展示如何提取文本。
要获得文本定位信息,您还必须处理以下命令:
Tc
、Tw
、Tz
、TL
、T*
、Tr
和Tm
。
你肯定需要从Adobe下载PDF规范才能获得所有详细信息。有一章专门讨论文本处理。打印出那一章是非常值得的,因为你会把它称为很多。你需要知道的一切都在那里,但并不总是显而易见的。
你还需要使用一些线性代数。不过没什么太复杂的。
由于有很多方法可以实现相同的结果,因此彻底实现所有命令是很重要的,即使要处理的文档似乎不需要某些功能。例如:我遇到一个文档,它将所有文本大小设置为一个点,这打乱了我所有的计算,直到我意识到它是使用文本缩放因子来设置实际字体大小。
使用PoDoFo工具"podofotxtextract",它会为您提供x,y坐标(PoDoFo包的工具文件夹)。从Pdf中提取文本。
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 如何将内容数组写入文本文件?
- 如何在不移动C 中的光标坐标的情况下输出文本以控制特定坐标
- 从文本中抓取句子,将所有句子分别存储在某个数据结构中
- Android NDK-如何从TAP中获取坐标并将其显示在文本视图上
- 查找页面上文本的坐标-c++,windows,VS2013
- 从二进制文件中抓取文本时,为什么 xdg_vtnr=8 是我的结果
- PoDoFo从pdf中提取文本+坐标
- C++ 中的列文本抓取
- 将文本光标移动到特定的屏幕坐标
- 用C++以特定格式打印从文本文件中获得的坐标矢量
- 将文本转换为HPGL(绘图仪)矢量坐标
- Windows XP在C++中启动时读取文本文件的速度较慢;预取
- 从Windows应用程序的文本框中抓取文本
- 用C++从文本文件中读取坐标
- 从文本控件中检索字符位置的客户端区域坐标