Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unistra/xml-archive-to-pdf
Transformation d'un fichier xml de type *unistra:archive* en fichier pdf
https://github.com/unistra/xml-archive-to-pdf
Last synced: 10 days ago
JSON representation
Transformation d'un fichier xml de type *unistra:archive* en fichier pdf
- Host: GitHub
- URL: https://github.com/unistra/xml-archive-to-pdf
- Owner: unistra
- Created: 2017-01-11T15:09:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-08-28T17:18:25.000Z (about 1 year ago)
- Last Synced: 2024-04-16T02:00:03.338Z (7 months ago)
- Language: Python
- Size: 9.23 MB
- Stars: 0
- Watchers: 7
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
xml-archive-to-pdf
==================.. image:: https://travis-ci.org/unistra/xml-archive-to-pdf.svg?branch=master
:target: https://travis-ci.org/unistra/xml-archive-to-pdf
:alt: Build.. image:: http://coveralls.io/repos/unistra/xml-archive-to-pdf/badge.png?branch=master
:target: http://coveralls.io/r/unistra/xml-archive-to-pdf?branch=master
:alt: Coverage.. image:: https://img.shields.io/badge/status-stable-green.svg
:target: https://gitlab.unistra.fr/di/alumni-forms
:alt: Status.. image:: https://img.shields.io/badge/python-3.4-blue.svg
:target: https://www.python.org/download/releases/3.4.0/
:alt: Python 3.4.. image:: https://img.shields.io/badge/licence-PSF-blue.svg
:target: https://docs.python.org/3/license.html
:alt: LicenceTransformation d'un fichier xml de type *unistra:archive* en fichier pdf.
Installation
------------L'application est déployée sur pypi. Il suffit donc de l'installer directement avec pip:
.. code-block:: bash
pip install xml-archive-to-pdf
Usage
-----Après l'installation, la commande *xml-archive-to-pdf* est disponible:
.. code-block:: bash
xml-archive-to-pdf
Usage:
xml-archive-to-pdf (-i ) (-o )
xml-archive-to-pdf (-i ) (-o ) -l
xml-archive-to-pdf (-i ) (-o ) -f
xml-archive-to-pdf (-i ) (-o ) -l -fOptions:
-h --help aide
-i , --input
-o , --output
-l , --logo
-f , --fontExemple d'utilisation:
.. code-block:: bash
xml-archive-to-pdf -i tests/data/pathfinder_1.xml -o /tmp/pathfinder_1.pdf --logo tests/data/logo.png --font tests/data/CustomFont
Développement
-------------
Créer l'environnement de développement:.. code-block:: bash
mkvirtualenv -p /usr/bin/python3.4 xml_archive_to_pdf
workon xml_archive_to_pdf
pip install -r requirements.txt
python setup.py developDéployer sur pypi:
.. code-block:: bash
python setup.py sdist upload
Fabriquer un *exe* pour Windows :
.. code-block:: bash
sudo apt install wine-development
./build-exe.shTests
-----Pour lancer les tests unitaires, vous pouvez utiliser *tox*. Ce sont les tests exécutés par la CI :
.. code-block:: bash
pip install tox
toxDocumentation
-------------Structuration d'un fichier xml de type *unistra:archive*
********************************************************L'objectif est de pouvoir générer simplement un fichier pdf en se basant sur un fichier xml conforme à la norme *unistra:archive*.
En amont, il faudra s'assurer que le fichier xml soit validé par un schéma xsd et qu'il contient toutes les informations nécessaires à la fabrication du pdf.On aura principalement :
* Des blocs séparés par des titres
* Des clés avec un intitulé parlant dans l'attribut name
* Des valeurs
* Une mise en forme de tableau dans l'attribut styleConcernant le rendu des éléments dans le pdf :
* Lorsque l'on met l'attribut *style="table"*, l'ensemble du bloc est affiché comme un tableau.
Le premier élément permet de définir le nom des colonnes. Tous les éléments suivants doivent avoir les mêmes colonnes.
Celui-ci doit être structuré de la même manière que l'exemple ci-dessous.
* En dehors des tableaux, lorsqu'un tag possède des enfants, c'est que c'est un titre. Sinon, c'est un ensemble clé-valeur.
* Il y 6 niveaux d'indentation maximum et les tableaux ne sont pas indentés
* Pour les labels, si l'attribut name est rempli, on l'utilise. S'il est absent, on utilise le nom du tag et s'il est vide, on met un blanc.Exemple d'un fichier xml
************************.. code-block:: xml
Sombre-crâne
20
Barbare
3
Prêtre combattant
1
Moine
cimeterre
à deux mains
3
7
feu
épique
1000
très bonne
arc
à distance
8
2
glace
simple
100
mauvaise
épée
à une main
5
3
terre
rare
500
moyenne
ronron
sanglier
Légende de l'exemple
********************attributs
#########* name : intitulé parlant qui servira de label/titre à la place du nom du tag
* style : style d'un bloc* table: affichage sous forme d'un tableau. Le tableau se redimensionne automatiquement en fonction du nombre de colonnes.
Attention néanmoins à ne pas utiliser trop de colonnes ou des éléments trop gros, car le rendu pourrait ne pas correspondre vos attentes.
* title: permet de forcer l'affichage sous forme de titre. Ca peut être utile dans le cas où on veut afficher un tag vide comme un titre et
non pas comme une clé/valeur.Résultat
********* `Fichier pdf de l'exemple `_
Autres
*******
* --logo : le paramètre logo est optionnel et permet de rajouter un logo sur le document en haut à droite
* --font : le paramètre font est optionnel et permet de remplacer la font par défaut par une autre font
Attention, le dossier qui contiendra la font doit obligatoirement avoir les 4 fichiers suivants:* CustomFont-BoldOblique.ttf
* CustomFont-Bold.ttf
* CustomFont-Oblique.ttf
* CustomFont.ttf