README.md 3.01 KB
Newer Older
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
1
2
# PDF2Blocs

Bernard Stephan's avatar
Bernard Stephan committed
3
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6605450.svg)](https://doi.org/10.5281/zenodo.6605450)
Bernard Stephan's avatar
Bernard Stephan committed
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

## Abstract
*This python script converts pdf file written in french into html file.*

*The conversion consists in organizing the textual content of a pdf file into separate blocks. Each of these blocks will be transformed into an html  section: H1, H2, P, FigCaption, Footer, Header.*


*This program uses pdftohtml and pdftotext, two tools of the poppler bookstore (https://poppler.freedesktop.org/)*

*It's run from the command line:*

python pdf2blocks.py /link/to/file.pdf

*The result is written on standard output.*

*The algorithme is described in french into the README.md file of the archive.*

## Résumé
22
23
Un script python qui permet de segmenter des documents numériques au format
PDF ayant un contenu textuel en français.
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
24

25
26
27
La segmentation consiste a organiser le contenu textuel d'un document
en une liste de blocs distincts.
Chacun de ces blocs sera transformé en une section de page html :
28
H1, H2, P, FigCaption, Footer, Header et Table.
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
29
30


31
32
Ce programme est basée sur l'outil pdftohtml et pdftotext, deux outils de
la librairie [poppler](https://poppler.freedesktop.org/).
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
33

34
35
36
37
38
39
Pour la reconnaissance des tableaux, il utilise
[camelot-py](https://pypi.org/project/camelot-py/)
([documentation](https://camelot-py.readthedocs.io/en/master/index.html)).
Camelot peut s'appuyer sur ghostscript ou poppler. Nous avons bien sûr
choisi le second, qui nécessite [pdftopng](https://pypi.org/project/pdftopng/)
(basé sur poppler).
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
40

41
42
Le programme prend en entrée un fichier  au format PDF,
et produit en sortie un fichier html.
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
43

44
On l'exécute depuis la ligne de commande :
Abderrahmani Ghorfi Tayeb's avatar
readme    
Abderrahmani Ghorfi Tayeb committed
45

46
>     python src/py/pdf2blocks.py /chemin/vers/fichier.pdf
47

48
49
Le résultat est écrit sur la sortie standard. Il est facile de la rediriger
dans un fichier html.
50

Roussey Catherine's avatar
Roussey Catherine committed
51

52
53
54
L'algorithme utilisé est entièrement décrit dans le fichier
[README.md](https://gitlab.irstea.fr/copain/pdf2blocs/-/blob/master/src/py/README.md) situé dans le répertoire src/py , où se trouve le code source de
[pdf2blocks.py](https://gitlab.irstea.fr/copain/pdf2blocs/-/blob/master/src/py/pdf2blocks.py)
Roussey Catherine's avatar
Roussey Catherine committed
55
56


Roussey Catherine's avatar
Roussey Catherine committed
57
## Evaluation
Roussey Catherine's avatar
Roussey Catherine committed
58

Roussey Catherine's avatar
Roussey Catherine committed
59
les sorties de pdf2blocs ont été comparées aux sorties d'un logiciel du commerce Abbyy payant. 3 fichiers pdf ont été utilisé pour faire cette comparaison:
Roussey Catherine's avatar
Roussey Catherine committed
60
61
62
63
64
* un BSV en viticulture de la région Lorraine datant de 19 juin 2019: Ce fichier contient beaucoup d'images et du texte caché.
* un BSV en viticulture de la région Alsace datant du 26 juillet 2016: Ce fichier est une feuille recto verso imprimée en paysage. Il contient 4 colonnes avec des titres non homogènes. Ces bas de pages pausent aussi problème.
* un BSV vigne de la région Aquitaine datant du 9 avril 2019: la première page de ce fichier est en double colonnes. Il contient une grande typologie de titres et du texte dans des encadrés.

Chaque erreur a été identifiée. La liste des erreurs est disponibles dans un fichier csv.
Roussey Catherine's avatar
Roussey Catherine committed
65
66

L'ensemble des fichiers sont disponibles dans le répertoire corpusEvaluation