如何用 python 解析这种 PDF
How to parse this kind of PDF with python
我正在尝试解析此处找到的 pdf:https://corporate.lowes.com/sites/lowes-corp/files/annual-report/lowes-2020ar.pdf 和 python。根据 copy/paste 测试,它似乎是基于文本的,并且前几页可以很好地解析,例如pymupdf.
但是,大约在第 12 页之后,文档编码似乎发生了内部变化。例如,第 18 页的这一部分:
它看起来像文本,但是当您复制并粘贴它时,它变成:
%A>&1;<81
FB9#4AH4EL
%BJ8XF8@C?BL874CCEBK<@4G8?L
9H??G<@84FFB6<4G8F4A7
C4EGG<@84FFB6<4G8F
CE<@4E<?L<AG;8.A<G87,G4G8F4A74A474"A9<F64?
J88KC4A787BHEJBE>9BE68
;<E<A:4FFB6<4G8F<AC4EGG<@8
F84FBA4?
4A79H??G<@8CBF<G<BAFGB9H?9<??G;8F84FBA4?78@4A7B9BHE,CE<A:F84FBA
<A6E84F8778@4A77HE<A:G;8(/"C4A78@<6
4F6HFGB@8EF9B6HF87BA;B@8<@CEBI8@8AGCEB=86GF
4A74A4G<BAJ<78899BEGGB@B7<9LBHEFGBE8?4LBHG
这是怎么回事?我需要使用 OCR 来解析这样的文件吗?或者有什么方法可以将上面的内容翻译回文本吗?
第 13 到 100 页已经导入,也有其他奇怪的做法,因此建议您将获得 12 个好的页面,然后需要 OCR 13-100,然后可能从 101-104 中的 3 页再次看到
第 13-100 页的大部分包含被描述为罗马的结构化文本,巧合的是,罗马人喜欢通过将字母表向右或向左滑动几步来编码消息,这正是这里按字符发生的情况滑动我们可以使用 chars+n 提取大部分损坏的文本,所以阅读
A and replace with n
B and replace with o
C and replace with p
等但我会把它留在那里,因为我几乎没有时间对错误的文件字体定义进行 90 页的分析。
我试过 Acrobat 和 Exchange 加上其他人都同意文本被定义为 Times Roman 的合理形式因此没有什么可以修复但内容仍然没有意义选择“我们”(08) 的字符通常会跳到另一个实例建议可能有一些轻微的赎回可能性,但同样的两个字符有时会再次停在“ai”处,这是所需要的,所以我会说文件已损坏。
理论上,PDF 中的损坏应该可以通过重新映射该字体(至少对于那些页面)来恢复,并且通过相应地添加或减去良好的 Char 重新映射,纯文本可能更容易转换。
我正在尝试解析此处找到的 pdf:https://corporate.lowes.com/sites/lowes-corp/files/annual-report/lowes-2020ar.pdf 和 python。根据 copy/paste 测试,它似乎是基于文本的,并且前几页可以很好地解析,例如pymupdf.
但是,大约在第 12 页之后,文档编码似乎发生了内部变化。例如,第 18 页的这一部分:
它看起来像文本,但是当您复制并粘贴它时,它变成:
%A>&1;<81
FB9#4AH4EL
%BJ8XF8@C?BL874CCEBK<@4G8?L
9H??G<@84FFB6<4G8F4A7
C4EGG<@84FFB6<4G8F
CE<@4E<?L<AG;8.A<G87,G4G8F4A74A474"A9<F64?
J88KC4A787BHEJBE>9BE68
;<E<A:4FFB6<4G8F<AC4EGG<@8
F84FBA4?
4A79H??G<@8CBF<G<BAFGB9H?9<??G;8F84FBA4?78@4A7B9BHE,CE<A:F84FBA
<A6E84F8778@4A77HE<A:G;8(/"C4A78@<6
4F6HFGB@8EF9B6HF87BA;B@8<@CEBI8@8AGCEB=86GF
4A74A4G<BAJ<78899BEGGB@B7<9LBHEFGBE8?4LBHG
这是怎么回事?我需要使用 OCR 来解析这样的文件吗?或者有什么方法可以将上面的内容翻译回文本吗?
第 13 到 100 页已经导入,也有其他奇怪的做法,因此建议您将获得 12 个好的页面,然后需要 OCR 13-100,然后可能从 101-104 中的 3 页再次看到
第 13-100 页的大部分包含被描述为罗马的结构化文本,巧合的是,罗马人喜欢通过将字母表向右或向左滑动几步来编码消息,这正是这里按字符发生的情况滑动我们可以使用 chars+n 提取大部分损坏的文本,所以阅读
A and replace with n
B and replace with o
C and replace with p
等但我会把它留在那里,因为我几乎没有时间对错误的文件字体定义进行 90 页的分析。
我试过 Acrobat 和 Exchange 加上其他人都同意文本被定义为 Times Roman 的合理形式因此没有什么可以修复但内容仍然没有意义选择“我们”(08) 的字符通常会跳到另一个实例建议可能有一些轻微的赎回可能性,但同样的两个字符有时会再次停在“ai”处,这是所需要的,所以我会说文件已损坏。
理论上,PDF 中的损坏应该可以通过重新映射该字体(至少对于那些页面)来恢复,并且通过相应地添加或减去良好的 Char 重新映射,纯文本可能更容易转换。