Accéder au contenu principal

Oracle Dynamic Converter

Oracle Dynamic Converter est un composant du produit Oracle Universal Content management (UCM)
Ce composant permet de convertir à la volée un document depuis un format donné (MS Office ou autre) vers un format HTML. Cette transformation est conduite à partir d’un Template de conversion.
Ce Post indique comment valoriser des documents Word existants sur une plateforme internet (commerce électronique, B2B).

Exemple de scénario à traiter

Un entreprise commercialise des voyages et souhaite mettre en ligne des fiches descriptives de destinations (Villes, régions, pays) à l’attention des voyageurs. Ces fiches sont rédigées par des rédacteurs indépendants à qui l’entreprise sous-traite ce travail, et qui possèdent une pratique suffisante du traitement de Texte MS Word.
Le besoin du responsable de site consiste à afficher le contenu d’une fiche (au format Word) au sein d’une page HTML sur le site internet de la société, et selon un contexte donné. Par exemple:  Afficher la fiche de la ville de Montpellier si l’internaute a exprimé son intérêt pour cette destination, en regard d’autres informations telles que le prix de l’avion ou du train et les hôtels recommandés.

Principes de mise en œuvre

Nous allons constituer une bibliothèques de descriptifs de lieux, et définir un Template de conversion dans lequel nous indiquerons quels sont les informations à extraire et comment les présenter à l’affichage. UCM sera utilisé pour le stockage et la gestion du cycle de vie des documents. Toutes les fiches seront enregistrées dans leur format natif MS Word.
1. Définition d’un template Word
Afin de disposer de fiches homogènes, il est nécessaire que chaque contributeur utilise une même structure de rédaction.  Chaque descriptif de lieu sera structuré selon un découpage par nature d’information: Histoire, environnement, endroits à voir, etc. On définira ainsi un template Word que l’on diffusera à tous les contributeurs.
image
il faudra définir un style de paragraphe pour chacun des types d’information, ainsi qu’une paire de styles qui permettront de délimiter le début et la fin de la section. Par exemple, la section INTRODUCTION sera associée aux styles suivants:
  • villeIntroduction
  • villeIntroductionStart
  • villeIntroductionEnd
image
Chaque section sera entourée de deux paragraphes cachés dont le seul rôle sera d’être associé aux styles de marquage de début et de fin de section. Nous verrons, dans la suite, que le style villeIntroduction pourra être utilisé pour l’extraction d’une section depuis le document word.
image
Une fois le template mis au point, il reste à le diffuser. Chaque contributeur enregistra sa ou ses fiches dans le référentiel d’UCM en libre-service, et pourra les modifier à volonté.
2. Définition d’un Template de conversion Dynamic Converter
Ce travail doit être réalisé avec la console d’administration de UCM, par un webDesigner de la compagnie. Il y a un assistant spécialisé accessible depuis un navigateur qui permet de mettre au point un Template de conversion  par rapport à un fichier échantillon.
On effectue donc un checkin préliminaire d’un document word qui nous servira de support pour la mise au point. Ce fichier sera, par exemple,  le document relatif à la ville de Montpellier que nous avons utilisé pour la mise au point du template Word.
Une fois lancé, voici un aperçu de l’éditeur de template de conversion. Le contenu provient du fichier qui a été choisi pour effectuer des prévisualisations. Au fur et à mesure que l’on affinera la structure du template, l’éditeur affichera le contenu du document en conséquence.
image
Sans effort supplémentaire et sans ajout de feuille de style CSS, voici un premier résultat de conversion tel qu’on peut l’obtenir par défaut.
image
Le résultat se présente donc sous la forme d’un document HTML.
La mise au point consiste à décrire comment les styles présents dans le documents word doivent être transformés en balises HTML. Il faut déclarer manuellement, dans le Template de conversion, les styles qui sont présents dans Word. En effets, les styles ne sont pas importés automatiquement depuis l’échantillon utilisé pour la mise au point du gabarit. Le principe consiste à déclarer les styles qui ont été utilisés dans MS Word (en reprenant la même orthographe) et à les associer à des éléments possédant un nom arbitraire. Ce sont ces éléments qui nous permettront d’affiner les conditions d’affichages (association de la balise HTML associée)
 image
Dans le cas d’un titre de chapitre de niveau 2, par exemple, on déclarera un style générique Heading 2 qui a été utilisé dans Word, avec la même orthographe, et on l’associera à un élément Titre2. Toutes les règles d’affichage de l’élément seront spécifiées dans le menu Formating. Dans le cas d’une section du document comprenant plusieurs paragraphes, chacun d’eux sera instancié en un élément correspondant s’il y a correspondance sur le nom du style.
3. Mise au point d’une feuille de style CSS
C’est ici que réside la beauté du produit. En effet, le convertisseur est en mesure de produire un contenu XHTML débarrassé de tout élément de style, et qui pourra donc être remanié avec une feuille de style CSS. Dans notre exemple, nous allons réaliser un affichage standard HTML avec le paragraphe d’introduction placé dans un encart à droite. Il faut que la section Introduction soit contenue dans un container DIV. Les styles de marquage de début et fin servent à cet usage.
image
Le style villeHiddenStart, présent dans le documentWord, sera associé à la création d’un élément appelé introstart. A cet élément, le module de conversion générera dans le flot HTML une balise DIV telle qu’on la définira dans l’assistant.
 image image
On fermera le bloc DIV en référencent le second style dont l’objet sera de créer un élément comportant la balise de fermeture /DIV.
La référence à la feuille de style s’effectue en indiquant le path relatif dans une propriété du template. Cette feuille de style sera elle-même gérée dans le référentiel UCM.
Voici le résultat qui est produit
image
Est-ce que l’on aurait pu utiliser le style villeIntroduction (qui avait été appliqué aux paragraphes de la section Introduction dans le document Word) ? Non, pour une raison qui est fournie en annexe.

4. Incorporation dans un portail existant
Nous allons prendre deux exemples de site consommateur des documents: Un portail et un blog
    • WebCenter
    • Wordpress
L’url d’appel au module Dynamic Converter est de cette forme:
http://wc/idc/idcplg?IdcService=GET_DYNAMIC_CONVERSION&dDocName=FICHE12&RevisionSelectionMethod=LatestReleased
Un paramètre supplémentaire conversionTemplate permet de préciser quel est le template qui doit être utilisé pour la conversion. Sans mention, c’est le template défini par défaut qui sera  choisi
Supposons que l’on souhaite extraire uniquement la section des livres à lire concernant une ville, afin de la juxtaposer dans une portlet au sein d’un portail B2B. Dans ce cas, nous mettons en œuvre une template dont le seul rôle sera d’extraire un ensemble de paragraphes depuis un document.
http://wc/idc/idcplg?IdcService=GET_DYNAMIC_CONVERSION&dDocName=FICHE12&RevisionSelectionMethod=LatestReleased&conversionTemplate=TEMPLATEFICHEVILLEINTRO
Ci-dessous, il s’agit d’une variante du template vu précédemment. La différence réside dans le fait que seule la section Introduction sera extraite par le convertisseur
image
Toutes les autres sections seront masquées dans le document HTML résultant.
image
L’habillage final du texte reste un travail classique d’application de feuille de style. Dans WebCenter, c’est un portlet de type Web Clipping qui sera utilisé afin d’appeler l’URL mentionnée plus haut. Cette URL pourra bien sur être appelée avec des paramètres de contexte qui permettront d’afficher une ville plutôt qu’une autre.
image
Utilisation avec Wordpress
Dans le cas de Wordpress, on utilise un plugin de scrapping/clipping tel que WP Web Scrapper.
L’échantillon ci-dessous montre un post dans lequel est inclus l’appel à l’URL utilisée plus haut. On obtient ainsi l’affichage de la section d’introduction au sein d’un post.
image
Wordpress permet la réalisation de pages qui échappent à la logique chronologique des posts, et ainsi on peut élaborer une page thématique sur une destination de voyage.
Avec une simple inclusion de la fonction de clipping suivante: [wpws url="http://wc/idc/idcplg?IdcService=GET_DYNAMIC_CONVERSION&dDocName=FICHE12&RevisionSelectionMethod=LatestReleased" selector="body" user_agent="My Bot"]
voici une exemple de page dans laquelle est affichée la totalité de la fiche Montpellier:
image

 

Conclusion

Le produit UCM Dynamic Converter constitue une réponse à la fois technique mais également organisationnelle pour la mise en place d’une chaine éditoriale:
  • Les contributeurs se concentrent sur la rédaction avec un minimum de contraintes (templates Word)
  • Les responsables métiers vérifient la qualité de l’information et s’appuient sur les fonctions de cycle de vie des documents proposés par UCM
  • le responsable de la plate-forme technique peut extraire le contenu des documents et le ré-associer avec une charte graphique spécifique.
  • Un même contenu (ici la fiche descriptive d’une ville) est exploitable en totalité ou bien par fragments
Voila donc une situation où la classique opposition entre données structurées et données non structurées perd de sa pertinence. Au contraire, le document constitue ici une source d’information bien vivante, et suffisamment structurée pour une utilisation en aval dans des contextes variés.

 


Annexes

Limitation des custom style pour la génération de bloc DIV
Si une section comprend plusieurs paragraphes, l’attribution d’un style à plusieurs paragraphes sera interprétée comme autant d’apparitions du style et donnera lieu à autant de sections qu’il y a de paragraphes. Cela empêchera l’application correcte d’une classe d’affichage à un container DIV, puisqu'il y en aura plusieurs qui porteront le même identifiant.
Contournement: On crée des balises délimitant les début et fin de section, comme vu plus haut.
Remarque:  il faudrait qu’il existe dans Word un type de style qui s’applique à un niveau plus haut que le paragraphe. Peut-être est-ce la cas avec une version de Word ??
Voir la note 446708.1 sur le site metalink.
Extrait de la note technique Oracle:
“…If you want to wrap your <div> tag around a whole list, the problem is that Word treats each line item as a separate paragraph. Dynamic Converter or Content Publisher converts each paragraph and applies the element to a paragraph. Then when you insert code it is getting its own code wrapped around each paragraph or line of the list in this case. You need to get the wrapping of code done around multiple paragraphs. This is not normal for conversion but you can make it work with some simple hidden style paragraphs in Word. This could be accomplished by creating a hidden style called StartOfList and then wrapping your beginning <div> tag around that, with an ending style called EndOfList and the ending <div> tag code around that. This would require the Word document creators to insert these hidden paragraphs. They could be hidden HTML or scripting code directly in the paragraph or it could be a paragraph that has code wrapped around it by the Dynamic Converter template. If Word allowed the whole list inside of one paragraph that would take care of the need for extra hidden styles...”

Extrait de la feuille de style pour l’affichage du cartouche
La classe suivante est utilisée pour la mise en forme de la section Inrtroduction qui est elle-même dans un container DIV.
#debutIntro { background-color: #f7f7f7;     border-bottom: 1px solid #d7dce8;    FONT-FAMILY: sans-serif; float:right; width:200px; PADDING-TOP: 1em; PADDING-LEFT: 1em; PADDING-RIGHT: 1em; FONT-SIZE: 11;    }
Génération d’un menu de navigation horizontal
Il est à noter qu’un barre de navigation peut simplement être obtenue en cochant un paramètre qui prend les titres de niveau Heading 1 (ou inférieurs)
image
Troubleshooting
Lors de la déclaration des styles dans le Template de conversion, un style comme Heading 2 passera si on est en Word 2003, mais ne sera pas reconnu si c’est du word 2007

Contributions

Les textes ayant été utilisés pour les tests proviennent du site Lonely  Planet - Introduction de la ville de Montpellier.
Version de ce post: 1.2

Commentaires

Anonyme a dit…
ce que je cherchais, merci

Posts les plus consultés de ce blog

Oracle Sites Cloud Service - Adding authentication to a site

With Oracle Sites Cloud Services, access to any site is Public, by default. If you have to add authentication, there is a very simple way to achieve it: First, we assume that authentication will be against the existing Identity Domain provided with the tenant. In a dedicated page of a site, called Login for instance, we add an App component which embeds an URL to any folder of Documents Cloud Service. ie: App URL =  https://documents.XX.oraclecloud.com/documents/ embed /home/nameasc Note that the URL will be called with the EMBED keyword . Then we add the App component is a region, and  we setup a height=1 and a width=1 (almost invisible). That's all. Each time a user will navigate to this custom   Login Page, and if the user is not yet authenticated, a new page will splash on the screen, asking for credentials. Once login and pasword are provided by the user, the page disapears and return to custom Login page. Optionnaly it's possible to add a dedicated butt

Auschwitz

 Quelques livres à propos des camps d'Auschwitz La mort est mon métier (Robert Merle) - 1952 Roman avec Rudolf Hoess (responsable camps d'Auschwitz) comme personnage principal Si c'est un homme (Primo Levi) - 1947 Témoignage de Primo Levi sur sa captivité à Auschwitz Les médecins d'Auschwitz (Bruno Halioua) - 1922 Etude sur l'organisation des services de médecine à Auschwitz Je me suis évadé d'Auschwitz (Rudolf Vrba) - 2004 Récit d'un captif qui a réussi à s'échapper d'Auschwitz Shoah  (Claude Lanzmann) - 1985 Dialogues du film "Shoah" Sonderkommando : Dans l'enfer des chambres à gaz  (Shlomo Venezia ) Entretien avec un ancien prisonnier qui a tenu le rôle de sonderkommando (manipulation des corps dans les chambres à gaz) Auschwitz I Birkenau

Streaming mp3 fromVLC / Icecast to Android

Here are some tips for streaming music to android mobile devices from a PC. Platform which has been used fo test: Ubuntu 11.10 oneiric + a NAS for storing music (windows can fit as well) Videolan VLC 1.1.12 (providing mp3 flow) icecast 2.3.2 (shoutcast radio) Winamp 1.2.12 for Android mobile(music player) Android-vlc-remote for Android (remote control for VLC) Start icecast server icecast2 -c icecast.xml The icecast xml config file is the original one. don't modify anything at this stage.  Setup VLC in order to stream mp3 instead ogg format Close VLC Prepare a playlist (ie: scarlatti.m3u) with Banshee or whatever. Launch VLC in command line vlc scarlatti.m3u --sout '#standard{access=shout,mux=ogg,dst=source:hackme@192.168.0.3:8000/scarlatti}' --sout-keep --extraintf=luahttp --fullscreen --http-album-art     Check that icecast is displaying a mount point for the new radio Check the HTTP acces