/*
* Copyright (c) 2012, Fromentin Xavier, Schnell Michaël, Dervin Cyrielle, Brabant Quentin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * The names of its contributors may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL Fromentin Xavier, Schnell Michaël, Dervin Cyrielle OR Brabant Quentin
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package gword.generateur;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.ArrayList;
import kameleon.document.Array;
import kameleon.document.BulletListElement;
import kameleon.document.Cell;
import kameleon.document.Document;
import kameleon.document.ElementPropertiesDefaultNames;
import kameleon.document.HorizontalSeparator;
import kameleon.document.HyperTextLink;
import kameleon.document.Image;
import kameleon.document.LineBreak;
import kameleon.document.MailLink;
import kameleon.document.NumberedListElement;
import kameleon.document.Paragraph;
import kameleon.document.Row;
import kameleon.document.TableOfContents;
import kameleon.document.Text;
import kameleon.document.TextParagraph;
import kameleon.document.TextParagraphElement;
import kameleon.document.Title;
import kameleon.exception.InvalidPropertyException;
import kameleon.exception.KameleonException;
import kameleon.plugin.SupportedOptions;
/**
*
* @author Brabant Quentin, Fromentin Xavier, Schnell Michaël
* @version 1.1
*/
public class Generator implements WordConstants {
private static final String propLists="<w:lists>"
+"<w:listDef w:listDefId=\"0\">"
+"<w:lsid w:val=\"29BD6E80\"/>"
+"<w:plt w:val=\"HybridMultilevel\"/>"
+"<w:tmpl w:val=\"A5FC4690\"/>"
+"<w:lvl w:ilvl=\"0\" w:tplc=\"040C0001\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1080\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1080\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"1\" w:tplc=\"040C0011\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%2)\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1800\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1800\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"2\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2520\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2520\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"3\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3240\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3240\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"4\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3960\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3960\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"5\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"4680\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"4680\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"6\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5400\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5400\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"7\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6120\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6120\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"8\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6840\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6840\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"</w:listDef>"
+"<w:listDef w:listDefId=\"1\">"
+"<w:lsid w:val=\"43CD558B\"/>"
+"<w:plt w:val=\"HybridMultilevel\"/>"
+"<w:tmpl w:val=\"D9C4D010\"/>"
+"<w:lvl w:ilvl=\"0\" w:tplc=\"040C0011\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%1)\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"720\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"720\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"1\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%2.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1440\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1440\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"2\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%3.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2160\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2160\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"3\" w:tplc=\"040C000F\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%4.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2880\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2880\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"4\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%5.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3600\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3600\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"5\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%6.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"4320\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"4320\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"6\" w:tplc=\"040C000F\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%7.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5040\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5040\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"7\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%8.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5760\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5760\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"8\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%9.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6480\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6480\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"</w:listDef>"
+"<w:listDef w:listDefId=\"2\">"
+"<w:lsid w:val=\"4DB72C4A\"/>"
+"<w:plt w:val=\"HybridMultilevel\"/>"
+"<w:tmpl w:val=\"983CCE1C\"/>"
+"<w:lvl w:ilvl=\"0\" w:tplc=\"040C0001\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"720\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"720\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"1\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1440\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1440\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"2\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2160\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2160\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"3\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2880\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2880\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"4\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3600\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3600\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"5\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"4320\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"4320\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"6\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5040\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5040\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"7\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5760\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5760\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"8\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6480\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6480\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"</w:listDef>"
+"<w:listDef w:listDefId=\"3\">"
+"<w:lsid w:val=\"545D3942\"/>"
+"<w:plt w:val=\"HybridMultilevel\"/>"
+"<w:tmpl w:val=\"A4D04720\"/>"
+"<w:lvl w:ilvl=\"0\" w:tplc=\"040C0011\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%1)\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"720\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"720\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"1\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%2.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1440\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1440\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"2\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%3.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2160\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2160\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"3\" w:tplc=\"040C000F\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%4.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2880\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2880\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"4\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%5.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3600\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3600\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"5\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%6.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"4320\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"4320\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"6\" w:tplc=\"040C000F\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:lvlText w:val=\"%7.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5040\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5040\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"7\" w:tplc=\"040C0019\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"4\"/>"
+"<w:lvlText w:val=\"%8.\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5760\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5760\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"8\" w:tplc=\"040C001B\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"2\"/>"
+"<w:lvlText w:val=\"%9.\"/>"
+"<w:lvlJc w:val=\"right\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6480\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6480\" w:hanging=\"180\"/>"
+"</w:pPr>"
+"</w:lvl>"
+"</w:listDef>"
+"<w:listDef w:listDefId=\"4\">"
+"<w:lsid w:val=\"7E46093F\"/>"
+"<w:plt w:val=\"HybridMultilevel\"/>"
+"<w:tmpl w:val=\"B928B7B8\"/>"
+"<w:lvl w:ilvl=\"0\" w:tplc=\"040C0001\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"720\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"720\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"1\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"1440\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"1440\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"2\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2160\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2160\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"3\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"2880\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"2880\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"4\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"3600\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"3600\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"5\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"4320\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"4320\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"6\" w:tplc=\"040C0001\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5040\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5040\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Symbol\" w:h-ansi=\"Symbol\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"7\" w:tplc=\"040C0003\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"o\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"5760\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"5760\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"<w:lvl w:ilvl=\"8\" w:tplc=\"040C0005\" w:tentative=\"on\">"
+"<w:start w:val=\"1\"/>"
+"<w:nfc w:val=\"23\"/>"
+"<w:lvlText w:val=\"?\"/>"
+"<w:lvlJc w:val=\"left\"/>"
+"<w:pPr>"
+"<w:tabs>"
+"<w:tab w:val=\"list\" w:pos=\"6480\"/>"
+"</w:tabs>"
+"<w:ind w:left=\"6480\" w:hanging=\"360\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Wingdings\" w:h-ansi=\"Wingdings\" w:hint=\"default\"/>"
+"</w:rPr>"
+"</w:lvl>"
+"</w:listDef>"
+"<w:list w:ilfo=\"1\">"
+"<w:ilst w:val=\"4\"/>"
+"</w:list>"
+"<w:list w:ilfo=\"2\">"
+"<w:ilst w:val=\"0\"/>"
+"</w:list>"
+"<w:list w:ilfo=\"3\">"
+"<w:ilst w:val=\"1\"/>"
+"</w:list>"
+"<w:list w:ilfo=\"4\">"
+"<w:ilst w:val=\"2\"/>"
+"</w:list>"
+"<w:list w:ilfo=\"5\">"
+"<w:ilst w:val=\"3\"/>"
+"</w:list>"
+"</w:lists><w:styles>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading1\">"
+"<w:name w:val=\"heading 1\"/>"
+"<wx:uiName wx:val=\"Heading 1\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading1Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"0\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:kern w:val=\"32\"/>"
+"<w:sz w:val=\"32\"/>"
+"<w:sz-cs w:val=\"32\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading2\">"
+"<w:name w:val=\"heading 2\"/>"
+"<wx:uiName wx:val=\"Heading 2\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading2Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"1\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:i/>"
+"<w:i-cs/>"
+"<w:sz w:val=\"28\"/>"
+"<w:sz-cs w:val=\"28\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading3\">"
+"<w:name w:val=\"heading 3\"/>"
+"<wx:uiName wx:val=\"Heading 3\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading3Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"2\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:sz w:val=\"26\"/>"
+"<w:sz-cs w:val=\"26\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading1\">"
+"<w:name w:val=\"heading 1\"/>"
+"<wx:uiName wx:val=\"Heading 1\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading1Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"0\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:kern w:val=\"32\"/>"
+"<w:sz w:val=\"32\"/>"
+"<w:sz-cs w:val=\"32\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading2\">"
+"<w:name w:val=\"heading 2\"/>"
+"<wx:uiName wx:val=\"Heading 2\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading2Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"1\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:i/>"
+"<w:i-cs/>"
+"<w:sz w:val=\"28\"/>"
+"<w:sz-cs w:val=\"28\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading3\">"
+"<w:name w:val=\"heading 3\"/>"
+"<wx:uiName wx:val=\"Heading 3\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading3Char\"/>"
+"<w:rsid w:val=\"00184431\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"2\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:sz w:val=\"26\"/>"
+"<w:sz-cs w:val=\"26\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading4\">"
+"<w:name w:val=\"heading 4\"/>"
+"<wx:uiName wx:val=\"Heading 4\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading4Char\"/>"
+"<w:rsid w:val=\"00E23400\"/>"
+"<w:pPr>"
+"<w:keepNext/>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"3\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:sz w:val=\"28\"/>"
+"<w:sz-cs w:val=\"28\"/>"
+"</w:rPr>"
+"</w:style>"
+"<w:style w:type=\"paragraph\" w:styleId=\"Heading5\">"
+"<w:name w:val=\"heading 5\"/>"
+"<wx:uiName wx:val=\"Heading 5\"/>"
+"<w:basedOn w:val=\"Normal\"/>"
+"<w:next w:val=\"Normal\"/>"
+"<w:link w:val=\"Heading5Char\"/>"
+"<w:rsid w:val=\"00CB3AD9\"/>"
+"<w:pPr>"
+"<w:spacing w:before=\"240\" w:after=\"60\"/>"
+"<w:outlineLvl w:val=\"4\"/>"
+"</w:pPr>"
+"<w:rPr>"
+"<w:rFonts w:ascii=\"Times New Roman\" w:h-ansi=\"Times New Roman\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"<w:b/>"
+"<w:b-cs/>"
+"<w:i/>"
+"<w:i-cs/>"
+"<w:sz w:val=\"26\"/>"
+"<w:sz-cs w:val=\"26\"/>"
+"</w:rPr>"
+"</w:style>";
private static final String propTable="<w:tblPr>"
+"<w:tblW w:w=\"0\" w:type=\"auto\"/>"
+"</w:tblPr>"
+"<w:tblGrid>"
+"<w:gridCol w:w=\"4606\"/>"
+"<w:gridCol w:w=\"4606\"/>"
+"</w:tblGrid>";
PrintWriter writer ;
private static final String openDocument = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+""
+"<?mso-application progid=\"Word.Document\"?>"
+""
+"<w:wordDocument xmlns:w=\"http://schemas.microsoft.com/office/word/2003/wordml\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:sl=\"http://schemas.microsoft.com/schemaLibrary/2003/core\" xmlns:aml=\"http://schemas.microsoft.com/aml/2001/core\" xmlns:wx=\"http://schemas.microsoft.com/office/word/2003/auxHint\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:dt=\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\" w:macrosPresent=\"no\" w:embeddedObjPresent=\"no\" w:ocxPresent=\"no\" xml:space=\"preserve\" xmlns:wsp=\"http://schemas.microsoft.com/office/word/2003/wordml/sp2\">"
+"<o:DocumentProperties>"
+"<o:Author>"
+"braba0061</o:Author>"
+"<o:LastAuthor>"
+"braba0061</o:LastAuthor>"
+"<o:Revision>1</o:Revision>"
+"<o:TotalTime>6</o:TotalTime>"
+"<o:Created>2012-04-23T11:13:00Z</o:Created>"
+"<o:LastSaved>2012-04-23T11:19:00Z</o:LastSaved>"
+"<o:Pages>1</o:Pages>"
+"<o:Words>0</o:Words>"
+"<o:Characters>0</o:Characters>"
+"<o:Company>"
+"UHP-NANCY-1</o:Company>"
+"<o:Lines>1</o:Lines>"
+"<o:Paragraphs>1</o:Paragraphs>"
+"<o:CharactersWithSpaces>0</o:CharactersWithSpaces>"
+"<o:Version>11.5604</o:Version>"
+"</o:DocumentProperties>"
+"<w:fonts>"
+"<w:defaultFonts w:ascii=\"Times New Roman\" w:fareast=\"Times New Roman\" w:h-ansi=\"Times New Roman\" w:cs=\"Times New Roman\"/>"
+"</w:fonts>";
private static final String closeDocument = "</w:wordDocument>" ;
private static final String openBody = "<w:body>" ;
private static final String closeBody = "</w:body>" ;
private static final String openP = "<w:p>" ;
private static final String closeP = "</w:p>" ;
private static final String openPr = "<w:pPr>" ;
private static final String closePr = "</w:pPr>" ;
private static final String openR = "<w:r>" ;
private static final String closeR = "</w:r>" ;
private static final String openT = "<w:t>" ;
private static final String closeT = "</w:t>" ;
private static final String pStyle = "<w:pStyle w:val=\"%s\"/>" ;
private static final String br = "<w:br/>" ;
private static final String htlink = "<w:hlink w:dest=\"%s\">" ;
private static final String mlink = "<w:hlink w:dest=\"mailto:%s\">" ;
private static final String closeLink = "</w:hlink>" ;
private static final String openArray = "<w:tbl>"
+"<w:tblPr>"
+"<w:tblW w:w=\"0\" w:type=\"auto\"/>"
+"<w:tblBorders>"
+"<w:top w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"<w:left w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"<w:bottom w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"<w:right w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"<w:insideH w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"<w:insideV w:val=\"single\" w:sz=\"4\" wx:bdrwidth=\"10\" w:space=\"0\" w:color=\"auto\"/>"
+"</w:tblBorders>"
+"</w:tblPr>"
+"<w:tblGrid>"
+"<w:gridCol w:w=\"4606\"/>"
+"<w:gridCol w:w=\"4606\"/>"
+"</w:tblGrid>";
private static final String closeArray ="</w:tbl>";
private static final String openRow="<w:tr>";
private static final String closeRow="</w:tr>";
private static final String openCell="<w:tc>"
+"<w:tcPr>"
+"<w:tcW w:w=\"4606\" w:type=\"dxa\"/>"
+"</w:tcPr>";
private static final String closeCell="</w:tc>";
private static final String openList="<w:p>"
+"<w:pPr>"
+"<w:listPr>";
private static final String closeList="</w:r></w:p>";
private static final String horizontalSeparator="<wx:pBdrGroup>"
+"<wx:borders>"
+"<wx:bottom wx:val=\"solid\" wx:bdrwidth=\"30\" wx:space=\"1\" wx:color=\"auto\"/>"
+"</wx:borders>"
+"<w:p wsp:rsidR=\"00000000\" wsp:rsidRDefault=\"0039092C\">"
+"<w:pPr>"
+"<w:pBdr>"
+"<w:bottom w:val=\"single\" w:sz=\"12\" wx:bdrwidth=\"30\" w:space=\"1\" w:color=\"auto\"/>"
+"</w:pBdr>"
+"</w:pPr>"
+"</w:p>"
+"</wx:pBdrGroup>";
private static final String hyperlinkStyle="<w:style w:type=\"character\" w:styleId=\"Hyperlink\">"
+"<w:name w:val=\"Hyperlink\"/>"
+"<w:rsid w:val=\"00642211\"/>"
+"<w:rPr>"
+"<w:color w:val=\"0000FF\"/>"
+"<w:u w:val=\"single\"/>"
+"</w:rPr>"
+"</w:style></w:styles>"
+"<w:docPr>"
+"<w:view w:val=\"print\"/>"
+"<w:zoom w:percent=\"100\"/>"
+"<w:doNotEmbedSystemFonts/>"
+"<w:defaultTabStop w:val=\"708\"/>"
+"<w:hyphenationZone w:val=\"425\"/>"
+"<w:punctuationKerning/>"
+"<w:characterSpacingControl w:val=\"DontCompress\"/>"
+"<w:optimizeForBrowser/>"
+"<w:validateAgainstSchema/>"
+"<w:saveInvalidXML w:val=\"off\"/>"
+"<w:ignoreMixedContent w:val=\"off\"/>"
+"<w:alwaysShowPlaceholderText w:val=\"off\"/>"
+"<w:compat>"
+"<w:breakWrappedTables/>"
+"<w:snapToGridInCell/>"
+"<w:wrapTextWithPunct/>"
+"<w:useAsianBreakRules/>"
+"<w:dontGrowAutofit/>"
+"</w:compat>"
+"</w:docPr>";
public Generator(File f) throws KameleonException {
try {
//System.out.println("File : "+f.getAbsolutePath());
writer = new PrintWriter(f, "UTF-8");
} catch (IOException ex) {
//TODO Add our exception
throw new KameleonException(ex.getMessage()) ;
}
}
public void generateDocument(Document d, SupportedOptions options) {
try {
writer.printf(openDocument) ;
writer.print(propLists);
writer.print(hyperlinkStyle);
writer.printf(openBody);
for (Paragraph p : d) {
try {
//System.out.println(p.getClass());
Method methode = this.getClass().getDeclaredMethod("generateParagraph", new Class<?>[]{p.getClass()}) ;
methode.invoke(this, p) ;
} catch (Exception ex) {
ex.printStackTrace();
//System.out.printf("%s -- %s : %s\n", p.getClass(), ex.getClass(), ex.getMessage());
// //ex.printStackTrace(System.out);
}
}// for
writer.printf(closeBody);
writer.printf(closeDocument);
} finally {
//Close the PrintWriter
if (writer != null) {
writer.flush();
writer.close();
}
}
}
private void generateParagraph(TextParagraph p){
writer.printf(openP);
// writer.printf(openR);
for(TextParagraphElement pe : p) {
try {
Method methode = this.getClass().getDeclaredMethod("generateTextParagraphElement", pe.getClass()) ;
////System.out.printf("%s -- %s\n", pe.getClass(), Arrays.toString(methode.getParameterTypes()));
methode.invoke(this, pe) ;
} catch (Exception ex) {
////System.out.printf("%s -- %s : %s\n", pe.getClass(), ex.getClass(), ex.getMessage());
////System.out.printf("Classe : %s\n",pe.getClass());
////System.out.println(""+pe.getProperty(ElementPropertiesDefaultNames.TEXT_BODY));
////ex.printStackTrace(System.out);
}
}
// writer.printf(closeR);
writer.printf(closeP);
}
private void generateParagraph(BulletListElement bl) {
writer.printf(openList);
try {
writer.printf("<w:ilvl w:val=\""+bl.getProperty(ElementPropertiesDefaultNames.LIST_LEVEL)+"\"/>"
+"<w:ilfo w:val=\"4\"/>"
+"</w:listPr>"
+"</w:pPr><w:r>");
} catch (InvalidPropertyException e) {
/* This should not happen. */
}// try
for(TextParagraphElement pe : bl) {
try {
Method methode = this.getClass().getDeclaredMethod("generateTextParagraphElement", pe.getClass()) ;
methode.invoke(this, pe) ;
} catch (Exception ex) {
// //System.out.printf("%s -- %s : %s\n", pe.getClass(), ex.getClass(), ex.getMessage());
// //ex.printStackTrace(System.out);
}
}
writer.printf(closeList);
//System.out.println("zut "+bl.getProperty(ElementPropertiesDefaultNames.TEXT_BODY));
}
private void generateParagraph(NumberedListElement nl) {
writer.printf(openList);
try {
writer.printf("<w:ilvl w:val=\""+nl.getProperty(ElementPropertiesDefaultNames.LIST_LEVEL)+"\"/>"
+"<w:ilfo w:val=\"5\"/>"
+"<wx:t wx:val=\"1)\" wx:wTabBefore=\"360\" wx:wTabAfter=\"165\"/>"
+"<wx:font wx:val=\"Times New Roman\"/>"
+"</w:listPr>"
+"</w:pPr><w:r>");
} catch (InvalidPropertyException e) {
/* This should not happen. */
}// try
for(TextParagraphElement pe : nl) {
try {
Method methode = this.getClass().getDeclaredMethod("generateTextParagraphElement", pe.getClass()) ;
methode.invoke(this, pe) ;
} catch (Exception ex) {
}
}
writer.printf(closeList);
}
private void generateParagraph(Title t) {
try {
//System.out.println("TITLE");
writer.printf(openP);
writer.printf(openPr);
writer.printf(pStyle,"Heading"+t.getProperty(ElementPropertiesDefaultNames.TITLE_LEVEL));
writer.printf(closePr);
writer.printf(openR);
writer.printf(openT);
writer.print(escape((String) t.getProperty(ElementPropertiesDefaultNames.TEXT_BODY))) ;
writer.printf(closeT);
writer.printf(closeR);
writer.printf(closeP);
} catch(InvalidPropertyException ipe) {
/* This should not happen. */
}// try
}
private void generateParagraph(Array a) {
int i=0;
int j=0;
int k=0;
int m=0;
Integer inte;
writer.printf(openArray);
writer.printf(propTable);
ArrayList<ArrayList<Integer>> ohwow= new ArrayList<ArrayList<Integer>>();
for(Row r : a) {
ohwow.add(new ArrayList<Integer>());
for(Cell c : r) {
inte=new Integer(0);
try {
Boolean row_span = (Boolean) c.getProperty(ElementPropertiesDefaultNames.ROW_SPAN) ;
Boolean col_span = (Boolean) c.getProperty(ElementPropertiesDefaultNames.COL_SPAN) ;
if(Boolean.TRUE.equals(row_span)) {
inte=2;
}
if(Boolean.TRUE.equals(col_span)) {
inte=1;
}
} catch(InvalidPropertyException ipe) {
/* This should not happen. */
}// try
ohwow.get(i).add(inte);
}
i++;
}
i=0;
for(Row r : a) {
k=0;
try {
writer.printf(openRow);
for(Cell c : r) {
if(ohwow.get(j).get(k)!=1){
writer.printf(openCell);
}
m=0;
if(ohwow.get(j).get(k)!=0){
if(ohwow.get(j).get(k)==2){
writer.printf("<w:vmerge/>");
}
}else{
while(k+m+1<ohwow.get(j).size()){
if(ohwow.get(j).get(k+m+1)==1){
m++;
}else{
break;
}
}
try{
if(ohwow.get(j+1).get(k)==2){
writer.printf("<w:vmerge w:val=\"restart\"/>");
}
}catch(Exception e){
}
}
if(m!=0){
writer.printf("<w:gridSpan w:val=\""+(m+1)+"\"/>");
}
i=0;
//System.out.println(c.getProperty(ElementPropertiesDefaultNames.ROW_SPAN)+" , "+c.getProperty(ElementPropertiesDefaultNames.COL_SPAN));
if(ohwow.get(j).get(k)!=1){
for (Paragraph p : c) {
try {
Method methode = this.getClass().getDeclaredMethod("generateParagraph", new Class<?>[]{p.getClass()}) ;
methode.invoke(this, p) ;
} catch (Exception ex) {
//System.out.printf("%s -- %s : %s\n", p.getClass(), ex.getClass(), ex.getMessage());
//ex.printStackTrace(System.out);
}
i++;
}
if(i==0){
writer.printf("<w:p/>");
}
writer.printf(closeCell);
}
k++;
}
writer.printf(closeRow);
} catch (Exception ex) {
}
j++;
}
writer.printf(closeArray);
writer.printf("<w:p/>");
}
private void generateParagraph(TableOfContents t) {
}
private void generateParagraph(HorizontalSeparator hs) {
writer.printf(horizontalSeparator);
}
private void generateTextParagraphElement(Text t) {
try {
Boolean b=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_BOLD);
Boolean i=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_ITALIC);
Boolean u=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_UNDERLINED);
Boolean s=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_STRUCK);
Boolean sub=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_SUBSCRIPT);
Boolean sup=(Boolean)t.getProperty(ElementPropertiesDefaultNames.FORMAT_SUPERSCRIPT);
if(b==null) b=false;
if(i==null) i=false;
if(u==null) u=false;
if(s==null) s=false;
if(sup==null) sup=false;
if(sub==null) sub=false;
writer.printf(openR);
writer.printf("<w:rPr>");
try{
if(b==true) writer.printf("<w:b/>");
if(i==true) writer.printf("<w:i/>");
if(s==true) writer.printf("<w:strike/>");
if(u==true) writer.printf("<w:u w:val=\"single\"/>");
if(sup==true) writer.printf("<w:vertAlign w:val=\"superscript\"/>");
if(sub==true) writer.printf("<w:vertAlign w:val=\"subscript\"/>");
}catch(NullPointerException e){
}
writer.printf("</w:rPr>");
writer.printf(openT);
writer.print(escape((String) t.getProperty(ElementPropertiesDefaultNames.TEXT_BODY)));
//System.out.println("-- "+t.getProperty(ElementPropertiesDefaultNames.TEXT_BODY));
writer.printf(closeT);
writer.printf(closeR);
} catch(InvalidPropertyException ipe) {
/* This should not happen. */
}// try
}
private void generateTextParagraphElement(Image img) {
}
private void generateTextParagraphElement(LineBreak lb) {
writer.printf(br);
}
private void generateTextParagraphElement(MailLink ml) {
String text = "" ;
try {
text = (String)ml.getProperty(ElementPropertiesDefaultNames.MAIL_DESTINATION);
} catch(InvalidPropertyException ipe) {
/* This should not happen. */
}// try
writer.printf(mlink,text);
writer.printf(openR);
writer.printf("<w:rPr>");
writer.printf("<w:rStyle w:val=\"Hyperlink\"/>");
writer.printf("</w:rPr>");
for(TextParagraphElement pe : ml){
try {
Method methode = this.getClass().getDeclaredMethod("generateTextParagraphElement", pe.getClass()) ;
methode.invoke(this, pe) ;
} catch (Exception ex) {
// //System.out.printf("%s -- %s : %s\n", pe.getClass(), ex.getClass(), ex.getMessage());
// //ex.printStackTrace(System.out);
}
}
writer.printf(closeR);
writer.printf(closeLink);
}
private void generateTextParagraphElement(HyperTextLink htl) {
String text = "" ;
try {
text = (String)htl.getProperty(ElementPropertiesDefaultNames.LINK_DESTINATION);
} catch(InvalidPropertyException ipe) {
/* This should not happen. */
}// try
writer.printf(htlink,text);
writer.printf(openR);
writer.printf("<w:rPr>");
writer.printf("<w:rStyle w:val=\"Hyperlink\"/>");
writer.printf("</w:rPr>");
for(TextParagraphElement pe : htl.getText()){
try {
Method methode = this.getClass().getDeclaredMethod("generateTextParagraphElement", pe.getClass()) ;
methode.invoke(this, pe) ;
} catch (Exception ex) {
// //System.out.printf("%s -- %s : %s\n", pe.getClass(), ex.getClass(), ex.getMessage());
// //ex.printStackTrace(System.out);
}
}
writer.printf(closeR);
writer.printf(closeLink);
}
public static String escape(String s) {
return s.replaceAll("&", "&") ;
}
}