Outils pour utilisateurs

Outils du site


public:import_odt

Import ODT/Document

Objectif

L'objectif principal de ce module d'import est de prendre en charge les documents de type :

  • DOC et DOCX (Microsoft Word)
  • ODT (LibreOffice Writer)

Conserver la structure du document en la recodant en XML-TEI

  • paragraphes au moins
  • hiérarchie des sections

Transférer petit à petit de plus en plus d'informations encodées en ODT.

Éditions :

  • avoir une édition HTML la plus proche possible qui conserve :
    • les styles de rendu (styles 'caractère' et 'paragraphe')
    • la pagination (sauts de page 'soft' et 'hard')
    • les illustrations (images)

Méthode

Description de l'existant : pour l'instant on va s'appuyer sur la feuille de transformation XSL de S. Ratz.

Solution

État actuel de l'import ODT

Déroulé du module d'import :

  1. Convergence vers le format XML-TEI
    1. Convergence vers le format ODT
    2. Application de la XSL de Ratz
  2. Copie des images internes du document
  3. Construction de feuilles de style d'affichage CSS
    • À partir des styles ODT : styles.xml et content.xml (styles automatiques)
  4. Retouche des fichiers TEI
    • Àjout de balises <pb/> à partir des styles de paragraphes
    • remplacement des styles automatiqueS par les styles parents
    • Suppression du teiHeader
    • Suppression des <tei:term>
  5. Injection des métadonnées
  6. Annotation des mots par TreeTagger
  7. Compiler XML/w
  8. Génération de l'édition HTML (Pager)
    • déclaration de la CSS doc.css
    • déclaration de la CSS spécifique du texte
    • tableau des métadonnées en première page
    • lorsque qu'un élément est interprété l'attribut “@rend” est toujours converti en attribut “@class”
    • les éléments “head” deviennent des “h2”
    • les éléments “graphic” deviennent des “img” englobés par un élément “div”, graphic@url devient img@src, c'est l'attribut @rend de l'élément “figure” englobant l'élément “graphic” qui devient l'attribut “img@class”
    • les éléménts “p”, “q” et “lg” sont uniformisés en élément “p”
    • les pages sont coupées avant l'élément de pagination “pb” et la valeur de “pb@n” est affichée en rouge centrée dans la page
    • les éléments table sont transmis, “row” devient “tr”, “cell” devient “td”
    • les sauts de lignes sont transmis
    • les listes sont transmises ainsi que leur propriété d'ordre ou non
    • les éléments “hi” deviennent des éléments “b”
    • les éléments “emph” deviennent des éléments “i”
  9. Copie des CSS dans le corpus binaire

À la fin de l'import, si il y a des images liées par URI, alors il faut copier ces images dans le dossier “images” à coté des fichiers HTML.

Jod converter

Jod est une petite librarie qui appelle office à l'aide d'une socket : https://github.com/mirkonasato/jodconverter

Les chemins ont été mis à jour dans la version du SVN de TXM : https://svn.code.sf.net/p/txm/code/trunk/libs/jodconverter-core

Les chemins sont testé dans l'ordre des listes ci-dessous et par OS :

Windows :

                programFiles + File.separator + "OpenOffice.org 3",
                programFiles + File.separator + "OpenOffice 4",
                programFiles + File.separator + "OpenOffice 5", // 
                programFiles + File.separator + "OpenOffice",
                programFiles + File.separator + "LibreOffice 3",
                programFiles + File.separator + "LibreOffice 4",
                programFiles + File.separator + "LibreOffice 5",
                programFiles + File.separator + "LibreOffice"

Mac :

                "/Applications/OpenOffice.org.app/Contents", // up to version 3
                "/Applications/OpenOffice.app/Contents", // since version 4+
                "/Applications/LibreOffice.app/Contents"

Linux :

                "/opt/openoffice.org3",
                "/opt/openoffice.org3",
                "/opt/libreoffice",
                "/usr/lib/openoffice",
                "/usr/lib/libreoffice"

Chemins concrets où LibreOffiche ou OpenOffice sont recherchés

Windows 64-bit (Java 64-bit) :

                C:\Program Files\LibreOffice 3\program\soffice.bin
                C:\Program Files\LibreOffice 4\program\soffice.bin
                C:\Program Files\LibreOffice 5\program\soffice.bin
                C:\Program Files\LibreOffice\program\soffice.bin
                C:\Program Files\OpenOffice 4\program\soffice.bin
                C:\Program Files\OpenOffice 5\program\soffice.bin
                C:\Program Files\OpenOffice.org 3\program\soffice.bin
                C:\Program Files\OpenOffice\program\soffice.bin

Mac OS X :

                /Applications/LibreOffice.app/Contents/MacOS/soffice
                /Applications/OpenOffice.app/Contents/MacOS/soffice.bin
                /Applications/OpenOffice.org.app/Contents/MacOS/soffice.bin

Linux :

                /opt/libreoffice/program/soffice.bin
                /opt/openoffice.org3/program/soffice.bin
                /usr/lib/libreoffice/program/soffice.bin
                /usr/lib/openoffice/program/soffice.bin

Protocole de test

État de la plate-forme

Recettes

Alpha

Préparation de l'environnement

Lancer l'import

  • Regrouper les fichiers DOC, DOCX ou ODT dans un dossier
  • Créer le fichier “import.xml” (le plus simple est de le produire par le biais d'une fenêtre de paramétrage d'import en lançant un module d'import, sauvegarder la configuration et ne pas lancer l'import)
  • Lancer la macro “RunImport” et sélectionner le script $HOME/TXM/scripts/import/docLoader.groovy
    • Sélectionner le dossier source
    • Renseigner le type d'import : DOC

0.7.8 beta

  • Lancer TXM 0.7.8 beta
  • Sélectionner le module d'import “ODT/DOC/RTF+CSV”
  • Créer un répertoire “manuel”
  • Télécharger et copier le manuel utilisateur de TXM dans le répertoire “manuel” : Manuel de TXM 0.7 FR.odt
  • Lancer l'import sur ce répertoire
    • Les images du manuel sont des fichiers externes,il faut copier le répertoire “ImagesTXM” dans le répertoire $TXMHOME/corpora/MANUEL/HTML/default/MANUEL

Discussion

Objectif

public/import_odt.txt · Dernière modification : 27/02/2018 09:59 de matthieu.decorde@ens-lyon.fr