将 PDF 转换为文本:Adobe Reader 与 Python 库
Convert PDF to text: Adobe Reader vs. Python libraries
我有一个 PDF,我尝试将其转换为文本以供进一步处理。
PDF 的结构稳定但复杂,因为它还包含元素和图形,有时还用作特定位置所写文本的背景。因此,我想提取尽可能多的文本。
我首先尝试使用 Adobe Reader 功能将 PDF 另存为文本,结果不错,但不允许此过程完全自动化。至少我不知道如何通过命令行与 Adobe Reader 交互,或者。
因此,我尝试了一些为此目的设计的 python 库,但它们似乎有不同的方法将 pdf 转换为文本。我尝试了 PdfMiner、PyPDF2 和 pdftotext。 None 个库给我的结果与 Adobe Reader 相同。
PDF 如下所示(由于不相关的敏感数据,略有裁剪):
Adobe 提取以下文本:
OCT 15° (4.3 mm) ART (25) Q: 34 [HR]
ILMILM200μm200μm 04590135180225270315360
TMPTSNSNASNITITMP
1000 800 600 400 200 0
Position [°]
CC
7.7 (APS)
G227(12%) T206(54%) TS226(20%) TI304(38%) N203(5%) NS213(6%)
NI276(12%) Segmentationunconfirmed! Classification MRW Within
Normal Limits
OCT ART (100) Q: 31 [HS]
ILMILMRNFLRNFL200μm200μm 111 04590135180225270315360
300 240 180 120 60 0
TMP TS NS NAS NI TI TMP
Position [°]
CC
7.7 (APS)
Classification RNFLT Outside Normal Limits
G78<1% T62(15%) TS103(5%) TI134(10%) N65(7%) NS77(3%) NI73(3%)
Segmentationunconfirmed! RNFL Thickness (3.5 mm) [μm]
WithinNormalLimits(>5%) Borderline(<5%)OutsideNormalLimits(<1%)
而例如,PDFminer 提取:
Average Thickness [�m]
Vol [mm�]
8.26
200 �m 200 �m
OCT 20.0� (5.6 mm) ART (21) Q: 25 [HS]
267
1.42
321
0.50
335
0.53
299
1.59
Center:
Central Min:
Central Max:
222 �m
221 �m
314 �m
Circle Diameters: 1, 3, 6 mm ETDRS
292
1.55
331
0.52
272
0.21
326
0.51
271
1.44
ILMILM
BMBM
200 �m 200 �m
这有很大的不同。这有什么原因吗?您知道任何 python 库具有与 Adobe Reader 相同的能力将 PDF 转换为文本吗?
不一定解释为什么 Adobe Reader 从 pdf 中提取文本的方式与某些 python 库不同,但我已经使用 tika 实现了一个非常好的解决方案。
这是提取的 tika:
OCT 15� (4.2 mm) ART (26) Q: 31 [HR]
NITSTMP NAS TMPTINSM in
im u
m R
im W
id th
[ �
m ]
1000 800 600 400 200
0
Position [�]
36031527022518013590450
ILMILM
RNFLRNFL
200 �m200 �m
OCT ART (100) Q: 27 [HS]
NITSTMP NAS TMPTINS
R N
F L T
h ickn
e ss (3
.5 m
m ) [�
m ]
300 240 180 120 60 0
Position [�]
36031527022518013590450
40
G 240
(10%)
T 239
(70%)
TS 213 (9%)
TI 285
(22%)
N 230 (5%)
NS 209 (3%)
NI 283 (9%)
CC 7.7 (APS)
Segmentation unconfirmed!
Classification MRW
Borderline
G 78
<1%
T 58
(8%)
TS 91
(2%)
TI 124 (6%)
N 64
(8%)
NS 110
(43%)
NI 71
(4%)
CC 7.7 (APS)
Segmentation unconfirmed!
Classification RNFLT
Outside Normal Limits
Within Normal Limits (>5%)
Borderline (<5%) Outside Normal Limits (<1%)
Reference database: European Descent (2014)
我有一个 PDF,我尝试将其转换为文本以供进一步处理。
PDF 的结构稳定但复杂,因为它还包含元素和图形,有时还用作特定位置所写文本的背景。因此,我想提取尽可能多的文本。
我首先尝试使用 Adobe Reader 功能将 PDF 另存为文本,结果不错,但不允许此过程完全自动化。至少我不知道如何通过命令行与 Adobe Reader 交互,或者。
因此,我尝试了一些为此目的设计的 python 库,但它们似乎有不同的方法将 pdf 转换为文本。我尝试了 PdfMiner、PyPDF2 和 pdftotext。 None 个库给我的结果与 Adobe Reader 相同。
PDF 如下所示(由于不相关的敏感数据,略有裁剪):
Adobe 提取以下文本:
OCT 15° (4.3 mm) ART (25) Q: 34 [HR]
ILMILM200μm200μm 04590135180225270315360
TMPTSNSNASNITITMP
1000 800 600 400 200 0
Position [°]
CC 7.7 (APS)
G227(12%) T206(54%) TS226(20%) TI304(38%) N203(5%) NS213(6%) NI276(12%) Segmentationunconfirmed! Classification MRW Within Normal Limits
OCT ART (100) Q: 31 [HS]
ILMILMRNFLRNFL200μm200μm 111 04590135180225270315360
300 240 180 120 60 0
TMP TS NS NAS NI TI TMP
Position [°]
CC 7.7 (APS)
Classification RNFLT Outside Normal Limits
G78<1% T62(15%) TS103(5%) TI134(10%) N65(7%) NS77(3%) NI73(3%) Segmentationunconfirmed! RNFL Thickness (3.5 mm) [μm]
WithinNormalLimits(>5%) Borderline(<5%)OutsideNormalLimits(<1%)
而例如,PDFminer 提取:
Average Thickness [�m]
Vol [mm�] 8.26
200 �m 200 �m
OCT 20.0� (5.6 mm) ART (21) Q: 25 [HS]
267 1.42
321 0.50
335 0.53
299 1.59
Center:
Central Min:
Central Max:
222 �m
221 �m
314 �m
Circle Diameters: 1, 3, 6 mm ETDRS
292 1.55
331 0.52
272 0.21
326 0.51
271 1.44
ILMILM
BMBM
200 �m 200 �m
这有很大的不同。这有什么原因吗?您知道任何 python 库具有与 Adobe Reader 相同的能力将 PDF 转换为文本吗?
不一定解释为什么 Adobe Reader 从 pdf 中提取文本的方式与某些 python 库不同,但我已经使用 tika 实现了一个非常好的解决方案。
这是提取的 tika:
OCT 15� (4.2 mm) ART (26) Q: 31 [HR]
NITSTMP NAS TMPTINSM in
im u
m R
im W
id th
[ �
m ]
1000 800 600 400 200
0
Position [�]
36031527022518013590450
ILMILM
RNFLRNFL
200 �m200 �m
OCT ART (100) Q: 27 [HS]
NITSTMP NAS TMPTINS
R N
F L T
h ickn
e ss (3
.5 m
m ) [�
m ]
300 240 180 120 60 0
Position [�]
36031527022518013590450
40
G 240
(10%)
T 239
(70%)
TS 213 (9%)
TI 285
(22%)
N 230 (5%)
NS 209 (3%)
NI 283 (9%)
CC 7.7 (APS)
Segmentation unconfirmed!
Classification MRW
Borderline
G 78
<1%
T 58
(8%)
TS 91
(2%)
TI 124 (6%)
N 64
(8%)
NS 110
(43%)
NI 71
(4%)
CC 7.7 (APS)
Segmentation unconfirmed!
Classification RNFLT
Outside Normal Limits
Within Normal Limits (>5%)
Borderline (<5%) Outside Normal Limits (<1%)
Reference database: European Descent (2014)