Dans la bibliothèque PyPDF2, les pages et
les champs des fichiers PDF sont des structures d'objets complexes. Une
structure d'objets consiste en des conteneurs (dictionaires, listes, sets et
tuples) comportant d'autres conteneurs et d'autres types d'objets. Ce dépôt
permet d'écrire dans des fichers texte une représentation de ces structures,
même celles qui ne contiennent pas d'objets de PyPDF2
.
Utilisez cette commande pour installer les dépendances du dépôt.
pip install -r requirements.txt
Elle prend comme arguments une structure d'objets et un flux d'écriture de
fichier (mode a
, a+
, r+
, w
ou w+
) pour produire une représentation
textuelle de la structure. L'indentation indique quels objets en contiennent
d'autres. Un troisième paramètre permet de limiter la profondeur de
l'exploration de la structure. Les objets au-delà de la profondeur limite ne
sont pas inclus dans le flux et sont représentés par [...]
. Il y a une
exception toutefois: si l'objet au niveau de profondeur juste après la limite
n'est pas un conteneur, il est inscrit dans le flux.
PyPDF2
utilise des objets indirects (type IndirectObject
) comme références
à des objets qui n'ont pas encore été chargés en mémoire. La fonction
write_pdf_obj_struct
résout la première occurrence de chaque objet indirect
puis remplace les occurrences suivantes par l'identification de l'objet
indirect.
Ils écrivent respectivement la structure d'objets des champs et des pages d'un
fichier PDF à l'aide de write_pdf_obj_struct
. Ces scripts ont les mêmes
paramètres. Pour les découvrir, utilisez les commandes ci-dessous.
python write_field_objects.py -h
python write_page_objects.py -h
In library PyPDF2, the pages and fields of
PDF files are complex object structures. An object structure consists of
containers (dictionaries, lists, sets and tuples) that hold other containers
and other object types. This repository allows to write a representation of
those structures in text files, even those that do not contain PyPDF2
objects.
Use this command to install the repository's dependencies.
pip install -r requirements.txt
It takes an object structure and a file writing stream (mode a
, a+
, r+
,
w
ou w+
) as arguments to make a text representation of the structure. The
indentation indicates which objects contain other ones. A third parameter
allows to limit the depth of the structure's exploration. The objects beyond
the depth limit are not included in the stream and are represented by [...]
.
There is an exception though: if the objet at the depth level just after the
limit is not a container, it is written in the stream.
PyPDF2
uses indirect objects (type IndirectObject
) as references to objects
that have not been loaded in memory. Function write_pdf_obj_struct
resolves
the first occurrence of each indirect object then replaces the next occurrences
with the indirect object's identification.
They respectively write the object structure of a PDF file's fields and pages
with write_pdf_obj_struct
. Those scripts have the same parameters. To
discover them, use the commands below.
python write_field_objects.py -h
python write_page_objects.py -h