很明显,原始的 Excel 电子表格由使用不同列宽的不同工作表组成。
所以 PDF 表格也使用不同的列宽。如果您查看 PDF,您可以看到以下页面范围组,每组具有相同的列宽。每个组还描述了不同的内容,从每个组起始页的更改标题中可以看出(即使无法理解西班牙语,我也可以识别这些差异):
- 第 2-6 页(5 页)
- 第 7-11 页(5 页)
- 第 12-16 页(5 页)
- 第 17-21 页(5 页)
- 第 22-26 页(5 页)
- 第 27-31 页(5 页)
- 第 32-36 页(5 页)
- 第 37-41 页(5 页)
- 第 42-46 页(5 页)
- 第 47-51 页(5 页)
- 第 52-56 页(5 页)
- 第 57+58 页(2 页)
- 第 59-62 页(4 页)
- 第 63-67 页(5 页)
- 第 68-72 页(5 页)
- 第 73-76 页(4 页)
- 第 77-80 页(4 页)
- 第 81-84 页(4 页)
- 第 85-88 页(5 页)
- 第 89-93 页(5 页)
- 第 84-98 页(5 页)
- 第 99-103 页(5 页)
- 第 104-107 页(4 页)
- 第 108+109 页(2 页)
- 第 110+111 页(2 页)
- 第 112+113 页(2 页)
- 最后,第 114 页(仅 1 页)
因此,您可以让pdftotext
这些页组提取表格数据。如果结果不是每个页面范围内的完全对齐的列,则必须逐页提取表格。这些应该很容易作为“固定宽度”表格数据导入 Excel 。
向您展示一个示例(使用 Poppler 的版本创建pdftotext
):
pdftotext \
-layout \
-enc UTF-8 \
-f 22 -l 26 \
-nopgbrk \
-x 20 -y 82 \
-W 810 -H 450 \
EMAtaules2012.pdf \
-
-f 22 -l 26
:
这告诉工具将第 22 页提取为范围中的第一个,将第 26 页提取为最后一个。
-nopgbrk
:
告诉工具不要插入分页符。
-x 20 -y 82
:
设置要从中提取表格数据的区域的左上角(以像素为单位)。注意,我在这里使用了这样的值,它也排除了列标题,而不仅仅是页眉和表名。
-W 810 -H 450
:设置用于表格数据提取的区域的宽度和高度(以像素为单位)。
请注意,如果您使用 XPDF 版本pdftotext
(可从www.foolabs.com/xpdf/download.html获得) ,则不支持-x
、和的命令行选项。但是如果您使用XPDF-pdftotext而不是使用 XPDF-pdftotext,那么结果应该是相似的(但是您仍然必须手动删除页面和列标题)。-y
-W
-H
-table
-layout
上面的命令给了你这个输出(我只显示了前两页的输出,宽度跳转正好在页面边界,Baix Ebre
条目后 2 行):
Alt Camp VY Nulles -1,4 19 -4,9 12 1,1 07 4,0 07 4,8 01 11,2 13 12,0 02 12,7 31 8,3 27 0,7 29 0,1 30 -1,7 01 -4,9 12/02
Alt Camp DQ Vila-rodona -0,5 30 -4,5 03 1,3 07 3,4 17 5,5 02 13,0 14 12,8 02 14,6 31 8,9 27 2,6 28 0, 2 30 0,6 12 -4,5 03/02
Alt Empordà U1 Cabanes -3,0 15 -6,0 09 -0,3 02 2,9 25 3,6 01 12,2 11 10,5 24 12,6 27 6,6 27 2,8 30 2,0 30 -4,3 12 -6,0 09/02
Alt Empordà W1 Castelló d'Empúries -2,7 15 -6,2 09 0,3 02 3,2 07 6,0 01 12,1 16 11,1 24 13,3 27 7,5 27 0,7 30 2 ,2 23 -3,7 12 -6,2 09/02
Alt Empordà VZ Espolla -1,8 15 -6,8 09 1,5 19 2,9 07 5,7 01 12,2 12 10,3 24 13,7 07 7,6 20 2,5 30 2,5 07 -4,8 12 -6,8 09/02
Alt Empordà D6 Portbou 1,7 29 -4,5 04 4,8 06 3,3 16 9,4 01 12,6 11 13,3 01 15,3 06 12,4 26 4,7 28 4,0 30 1 ,4 12 -4,5 04/02
Alt Empordà D4 玫瑰 -1,6 15 -4,2 09 2,9 16 4,6 07 7,0 01 13,5 12 13,5 24 15,7 27 8,7 27 2,1 30 3,5 23 -2,5 12 -4,2 09/02
Alt Empordà U2 Sant Pere Pescador -3,5 15 -6,1 09 -0,2 02 2,6 07 5,8 01 10,3 12 9,6 24 12,7 27 8,0 27 -0,2 30 1,9 23 -3,5 12 -6,1 09/02
Alt Empordà W2 Torroella de Fluvià -4,0 15 -6,7 09 -1,3 02 1,6 07 3,4 02 9,5 12 9,5 24 12,6 27 6,4 27 -0,6 30 0,9 30 -4,2 12 -6,7 09/02
Alt Empordà W3 Ventalló -5,0 15 -6,8 09 -0,7 02 1,9 07 4,3 01 10,2 12 10,6 24 12,5 27 6,9 27 -0,7 30 -0 ,8 30 -5,2 12 -6,8 09/02
Alt Penedès WP Canaletes -1,0 14 -5,3 12 1,6 07 3,1 17 5,7 03 11,2 13 12,1 02 13,7 31 9,0 27 1,8 29 -0,8 30 -0,6 02 -5,3 12/02
Alt Penedès DI 字体-rubí -1,1 29 -4,9 12 2,0 08 4,4 17 6,9 01 11,6 09 11,8 02 15,1 31 10,0 26 0,3 29 -0 ,3 30 -0,3 02 -4,9 12/02
Alt Penedès W4 la Granada -0,9 31 -5,4 13 1,0 07 3,7 17 5,9 01 11,1 13 12,1 02 13,5 31 9,0 26 1,7 29 -0, 9 30 -0,3 02 -5,4 13/02
Alt Penedès U3 Sant Martí Sarroca -4,1 14 -7,2 13 -0,3 08 3,0 07 4,6 03 11,2 12 11,4 02 13,2 31 8,2 26 -0,6 29 -1,1 30 -4,3 02 -7,2 13/02
Alt Penedès WY Sant Sadurní d'Anoia -2,7 31 -5,7 13 -0,3 08 2,4 07 4,7 01 10,7 12 12,0 02 13,8 31 8,0 27 1,6 30 -2,2 30 -2,8 02 -5,7 13/02
Alt Urgell CD la Seu d'Urgell -6,9 15 -10,7 12 -4,6 06 -1,5 17 2,1 01 6,3 12 7,5 02 7,2 31 3,1 27 -3 ,0 29 -4,0 30 -8,4 12 -10,7 12/02
Alt Urgell W5 奥利安娜 -6,6 31 -12,0 12 -4,3 08 -1,1 14 1,4 01 7,8 12 9,6 02 11,2 26 7,4 26 -3,1 29 - 4,5 30 -6,8 10 -12,0 12/02
Alt Urgell CJ Organyà -8,2 14 -8,8 05 -2,4 19 -0,9 20 1,1 01 6,6 12 9,9 02 10,4 31 5,6 27 -2,2 30 - 1,7 30 -7,8 12 -8,8 05/02
Alta Ribagorça Z2 Boí (2.535 m) -14,3 29 -23,0 03 -13,6 06 -11,5 16 -7,2 01 -1,8 12 0,7 01 -2,0 31 -3, 5 26 -14,2 28 -12,9 29 -11,5 06 -23,0 03/02
Alta Ribagorça CT el Pont de Suert -10,3 15 -11,8 21 -6,4 07 -3,4 17 -0,1 01 3,5 12 5,4 15 5,2 31 1,5 27 -4 ,9 29 -6,7 30 -9,6 12 -11,8 21/02
Anoia CE els Hostalets de Pierola -2,0 14 -5,1 13 1,3 07 3,4 17 5,8 01 12,4 12 12,2 02 13,1 31 10,0 27 1,2 29 -0 ,2 30 -1,9 02 -5,1 13/02
Anoia XB la Llacuna -6,2 14 -8,2 12 -2,8 07 1,1 17 2,4 03 6,4 13 9,8 24 10,2 31 5,0 27 -1,5 29 -3 ,2 30 -3,9 01 -8,2 12/02
Anoia XA la Panadella -3,9 30 -10,1 03 -2,2 06 -1,4 17 4,2 01 8,3 12 8,5 02 9,5 31 7,5 27 -1,2 28 - 2,0 30 -4,4 02 -10,1 03/02
Anoia H1 Òdena -5,6 14 -8,7 13 -4,2 07 0,3 17 2,3 01 7,9 13 10,4 02 12,2 31 5,0 27 -0,7 30 -3, 3 30 -4,8 02 -8,7 13/02
袋装 WW Artés -5,9 14 -10,3 11 -4,9 06 -2,1 17 2,2 01 9,0 12 10,4 24 10,6 31 5,0 27 -2,6 29 -5 ,0 30 -5,6 02 -10,3 11/02
Bages U4 Castellnou de Bages -5,5 14 -7,5 03 -1,7 06 1,3 17 3,8 01 9,6 12 11,3 02 11,6 31 6,7 27 -0,3 29 - 2,9 30 -3,8 02 -7,5 03/02
Bages R1 el Pont de Vilomara -5,3 14 -9,6 13 -3,0 07 -0,6 17 2,9 01 9,6 13 11,3 02 12,3 31 6,0 27 -1,2 29 -3,4 30 -5,0 02 -9,6 13/02
Bages WN Montserrat - Sant Dimes -0,3 29 -7,4 12 0,4 19 1,8 17 5,3 21 9,5 12 9,5 02 11,5 31 8,6 26 2,4 29 -0 ,1 30 -1,0 06 -7,4 12/02
Bages CL Sant Salvador de Guardiola -6,3 30 -10,1 13 -4,2 07 0,3 17 1,6 01 7,8 13 9,9 24 9,9 31 4,7 27 -1,5 30 -5,0 30 -6,4 02 -10,1 13/02
Baix Camp U5 普拉德斯 - los Hortals -6,6 30 -12,9 12 -5,8 09 -2,7 17 0,7 01 6,8 09 4,9 02 7,8 31 3,8 02 -3, 1 29 -5,0 30 -6,6 01 -12,9 12/02
Baix Camp W6 Riudoms 0,0 13 -3,2 03 2,7 01 4,9 07 6,3 01 13,9 13 14,8 02 16,1 31 10,7 26 4,1 28 3,7 30 1 ,6 10 -3,2 03/02
Baix Camp U6 Vinyols i els Arcs -1,1 15 -2,1 03 1,9 15 4,7 07 6,9 01 15,6 02 15,1 01 17,3 31 11,7 26 6,4 28 4 ,6 30 2,4 10 -2,1 03/02
Baix Ebre U7 阿尔多弗 0,4 31 -2,0 03 3,7 01 4,0 07 6,6 01 13,4 09 14,8 02 17,1 31 12,2 27 4,5 30 3,7 30 1 ,0 10 -2,0 03/02
Baix Ebre DB el Perelló -0,2 15 -2,8 03 3,2 07 6,0 17 7,4 01 15,5 09 15,3 02 16,9 31 12,0 29 5,0 30 3,5 30 1,7 01 -2,8 03/02
Baix Ebre U9 l'Aldea -1,3 13 -1,2 04 3,5 01 5,2 07 7,1 01 14,3 09 15,5 01 18,2 31 11,4 27 6,0 30 5, 6 30 0,6 10 -1,3 13/01
Baix Ebre UA l'Ametlla de Mar 1,1 15 -2,2 03 4,5 23 5,0 07 6,6 01 14,9 09 15,2 01 17,1 31 11,7 27 4,8 30 4 ,1 30 2,4 12 -2,2 03/02
Baix Ebre X5 PN dels 端口 -4,5 30 -11,3 04 -4,0 07 -2,8 17 0,2 01 5,8 09 7,4 01 8,0 31 4,8 27 -2,6 29 -4,6 30 -5,8 01 -11,3 04/02
Baix Empordà DO Castell d'Aro -1,7 15 -7,4 05 -0,4 06 2,2 17 4,9 01 11,2 12 12,1 24 13,6 31 9,1 27 -0,7 29 -1,5 30 -3,0 12 -7,4 05/02
Baix Empordà DF la Bisbal d'Empordà -3,2 15 -6,8 12 -2,4 06 0,5 17 4,6 01 11,1 12 10,3 24 11,6 31 7,7 27 -1, 0 29 -2,2 30 -4,2 12 -6,8 12/02
Baix Empordà UB la Tallada d'Empordà -4,1 15 -7,1 12 -2,0 06 1,8 17 4,8 01 11,9 12 10,8 24 12,4 31 7,2 27 -0, 5 30 -2,2 30 -5,1 12 -7,1 12/02
Baix Empordà UC Monells -3,7 15 -8,0 13 -3,2 06 -1,2 17 2,7 01 10,5 13 10,5 24 8,8 31 6,2 27 -2,1 29 - 2,5 30 -4,8 12 -8,0 13/02
Baix Empordà UD Serra de Daró -3,2 15 -6,8 12 -1,7 06 0,9 17 4,6 01 11,7 12 10,1 24 11,5 31 7,3 27 0,5 30 - 1,7 30 -3,8 12 -6,8 12/02
Baix Empordà UE Torroella de Montgrí -1,8 15 -5,6 12 -1,1 02 2,5 07 5,5 01 12,6 12 11,8 24 14,3 27 8,4 27 1,0 30 - 0,5 30 -3,4 12 -5,6 12/02
Baix Llobregat UF Begues - PN del Garraf 0,1 29 -5,8 04 2,5 06 3,1 17 6,4 21 11,8 12 12,3 01 14,2 31 10,1 26 1,8 28 0 ,1 30 -0,4 02 -5,8 04/02
Baix Llobregat XL el Prat de Llobregat 0,6 30 -4,6 05 2,1 06 5,5 07 8,5 01 12,4 12 14,8 02 16,8 31 9,9 26 3,3 29 1, 9 30 0,9 09 -4,6 05/02
Baix Llobregat D3 Vallirana 0,6 29 -3,1 03 4,1 07 5,4 17 6,7 01 12,9 12 13,9 02 15,9 31 11,3 27 4,7 29 1,9 30 0 ,4 01 -3,1 03/02
Baix Llobregat UG Viladecans 1,2 30 -4,1 05 3,8 08 6,2 11 8,4 01 15,0 16 15,4 02 17,5 31 12,1 26 4,2 29 2,2 30 1 ,1 02 -4,1 05/02
Baix Penedès WZ Cunit -1,9 30 -4,7 13 3,1 10 2,2 17 7,1 01 13,0 12 13,5 02 14,4 31 11,3 26 1,8 29 1,4 30 -1,6 02 -4,7 13/02
Baix Penedès UH el Montmell -0,7 29 -4,7 03 1,9 07 3,9 17 5,4 01 11,4 12 10,0 01 13,8 31 9,8 27 1,5 29 0,4 30 0,4 02 -4,7 03/02
Baix Penedès D9 el Vendrell -1,4 30 -4,2 12 1,2 10 5,3 07 6,4 02 12,9 12 13,2 02 17,7 08 10,7 26 4,3 29 1,1 30 0,1 11 -4,2 12/02
Baix Penedès WO la Bisbal del Penedès -5,4 14 -5,9 13 -1,3 10 4,5 02 3,8 01 11,6 15 12,9 24 14,6 08 7,0 27 0,9 30 -2,1 30 -2,9 01 -5,9 13/02
Barcelonès WU Badalona - Museu 2,2 14 -0,8 04 4,9 07 6,7 17 9,9 01 16,7 12 15,9 02 17,2 31 14,2 27 5,6 29 2,9 30 2,4 02 -0,8 04/02
Barcelonès X4 巴塞罗那 - 埃尔拉瓦尔 5,5 30 0,6 04 7,9 09 9,1 17 11,6 01 17,6 12 16,6 01 19,4 30 16,3 29 7,6 29 5,6 30 4,5 02 0,6 04/02
Barcelonès D5 巴塞罗那 - Observatori Fabra 1,0 30 -4,7 03 4,5 07 4,5 17 7,7 21 12,7 12 13,4 02 15,2 31 12,4 27 3,2 28 1,9 30 0,5 02 -4,7 03/02
Barcelonès X8 巴塞罗那 - Zona Universitària 1,9 14 -1,8 04 4,8 06 6,1 17 7,6 01 14,5 12 14,6 01 16,8 31 13,3 27 5,4 29 2,3 30 2,1 02 -1,8 04/02
Barcelonès X2 巴塞罗那 - 动物园 3,1 13 -2,3 05 5,1 10 8,5 07 10,1 01 15,9 12 16,6 02 18,0 31 14,8 02 6,8 29 4,3 30 2,2 02 -2,3 05/02
贝格达 UI Gisclareny -5,1 16 -12,5 04 -4,1 05 -2,7 17 -0,6 01 5,7 13 7,4 02 6,1 31 3,2 26 -2,8 29 - 5,1 30 -5,6 12 -12,5 04/02
贝尔格达 WV 瓜迪奥拉德贝尔格达 -7,4 14 -11,7 12 -5,8 07 -2,9 14 0,6 02 5,7 12 6,3 02 6,3 31 0,9 27 -4,4 30 -5,7 30 -8,4 01 -11,7 12/02
贝尔格达 CR la Quar -3,5 29 -11,5 12 -1,8 07 -2,3 17 1,2 01 5,7 12 10,0 15 8,9 31 5,0 27 -1,9 29 - 2,7 30 -4,7 01 -11,5 12/02
贝尔格达 WM Santuari de Queralt -2,4 29 -9,1 04 -0,8 06 -0,2 11 2,9 01 6,2 12 9,2 02 9,7 31 7,2 26 -1,0 28 -1,3 30 -2,8 12 -9,1 04/02
Cerdanya Z9 Cadí Nord (2.143 m) - Prat d'Aguilo -11,5 30 -19,6 03 -10,4 06 -9,0 17 -4,5 01 1,8 12 2,9 01 0,9 31 -1,0 26 -10,5 28 -11,4 30 -9,2 02 -19,6 03/02
Cerdanya DP Das -12,9 14 -16,6 12 -9,7 10 -5,5 14 -2,2 14 0,6 12 2,3 02 3,6 27 -2,8 27 -6,9 30 -8,3 30 -13,5 12 -16,6 12/02
Cerdanya Z3 Malniu (2.230 m) -12,2 29 -20,6 03 -10,7 06 -9,6 16 -5,4 01 0,4 12 2,9 01 -0,2 31 -0,4 27 -12,1 28 -11,3 30 -9,1 02 -20,6 03/02
Conca de B. W8 布兰卡福特 -3,1 19 -8,2 11 -2,8 07 1,9 17 2,9 01 10,7 13 11,8 02 12,5 31 6,2 27 -0,3 30 -1,2 30 -3,1 11 -8,2 11/02
Conca de B. CW l'Espluga de Francolí -2,0 16 -5,9 04 -0,9 07 2,5 17 2,8 01 11,5 04 10,4 02 13,2 31 6,5 27 - 0,3 30 -1,0 30 -3,2 12 -5,9 04/02
Conca de B. UJ Santa Coloma de Queralt -3,4 14 -8,9 03 -1,1 07 -0,4 17 3,4 01 8,3 13 9,2 02 10,7 31 6,7 27 - 0,3 28 -1,6 30 -3,4 02 -8,9 03/02
Garraf UK Sant Pere de Ribes - PN del Garraf -0,3 29 -3,8 04 2,8 06 4,2 17 7,1 01 12,9 12 12,4 02 13,2 31 12,0 27 2, 6 29 0,3 30 0,2 02 -3,8 04/02
嘉理盖思 UL Castelldans -4,9 26 -7,0 06 -1,9 10 1,7 07 3,2 01 11,5 15 12,8 03 13,6 31 5,8 27 -0,5 30 -1, 5 30 -5,1 12 -7,0 06/02
嘉理盖思 UM la Granadella -3,4 11 -7,6 03 -2,5 10 0,6 17 2,7 01 10,9 13 10,8 02 11,5 31 6,2 02 1,1 29 -0, 9 30 -3,4 12 -7,6 03/02
Garrotxa W9 拉瓦尔登巴斯 -6,3 14 -10,9 13 -5,8 07 -2,2 17 1,7 01 8,8 12 6,7 24 8,5 31 4,3 27 -4 ,3 29 -5,0 30 -6,6 09 -10,9 13/02
Garrotxa DC Olot -4,9 15 -9,9 12 -3,6 07 -1,8 17 2,6 01 9,0 12 9,9 24 9,6 31 5,5 27 -3,3 29 -3 ,9 30 -5,9 12 -9,9 12/02
Gironès UN Cassà de la Selva -4,2 15 -10,7 05 -3,0 06 0,5 17 1,9 01 8,8 12 11,0 24 10,5 31 6,7 27 -3,2 29 -4,4 30 -5,3 12 -10,7 05/02
Gironès UO Fornells de la Selva -5,8 15 -10,4 13 -4,9 07 -1,5 17 2,2 01 9,3 12 9,2 24 10,3 31 6,1 27 -3,5 29 -4,3 30 -6,3 12 -10,4 13/02
Gironès XJ 赫罗纳 -5,1 15 -9,6 13 -4,0 07 -1,6 17 3,1 01 10,2 12 9,7 24 10,4 31 5,7 27 -3,1 29 -3 ,8 30 -5,7 12 -9,6 13/02
Gironès WF Vilablareix -5,2 15 -9,9 13 -4,3 07 -1,7 17 3,0 02 9,0 12 9,7 24 11,7 31 5,7 27 -2,8 29 -2 ,8 30 -4,6 12 -9,9 13/02
Maresme UP Cabrils 1,6 30 -2,6 11 3,2 07 6,7 17 8,5 01 13,9 12 15,1 02 15,9 31 13,3 26 3,7 28 3,0 30 2, 6 12 -2,6 11/02
如果您知道如何正确操作文本编辑器,则修复此文本输出非常简单快捷,因此可以顺利导入 Excel...