diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java b/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java index 18e1354a..ce95b955 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java @@ -20,7 +20,6 @@ package com.wisemapping.exporter; public class ExportProperties { private ExportFormat format; - private String baseImgPath; private String version; public ExportFormat getFormat() { diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java index 716dc2bf..efc63c97 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java @@ -54,7 +54,7 @@ import java.util.regex.Pattern; public class ExporterFactory { private static final String GROUP_NODE_NAME = "g"; private static final String IMAGE_NODE_NAME = "image"; - public static final int MARGING = 50; + public static final int MANGING = 50; public static final String UTF_8_CHARSET_NAME = "UTF-8"; private File baseImgDir; @@ -127,17 +127,17 @@ public class ExporterFactory { break; } case TEXT: { - final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.TEXT); + final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.TEXT); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } case OPEN_OFFICE_WRITER: { - final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.OPEN_OFFICE); + final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.OPEN_OFFICE); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } case MICROSOFT_EXCEL: { - final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.MICROSOFT_EXCEL); + final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.MICROSOFT_EXCEL); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } @@ -148,7 +148,7 @@ public class ExporterFactory { break; } case MINDJET: { - final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.MINDJET); + final Exporter exporter = XSLTExporter.create(XSLTExporter.Type.MINDJET); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } @@ -243,27 +243,22 @@ public class ExporterFactory { Element elem = (Element) node; - // If the image is a external URL, embeed it... - String imgUrl = elem.getAttribute("href"); - if (!imgUrl.startsWith("image/png;base64") ||!imgUrl.startsWith("data:image/png;base64") ) { + final String imgUrl = fixHref(elem); + if (!imgUrl.isEmpty() && (!imgUrl.startsWith("image/png;base64") || !imgUrl.startsWith("data:image/png;base64"))) { elem.removeAttribute("href"); - if (imgUrl == null || imgUrl.isEmpty()) { - imgUrl = elem.getAttribute("xlink:href"); // Do not support namespaces ... - elem.removeAttribute("xlink:href"); - } - FileInputStream fis = null; - + InputStream fis = null; // Obtains file name ... try { final File iconFile = iconFile(imgUrl); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); + final ByteArrayOutputStream bos = new ByteArrayOutputStream(); fis = new FileInputStream(iconFile); BASE64Encoder encoder = new BASE64Encoder(); encoder.encode(fis, bos); elem.setAttribute("xlink:href", "data:image/png;base64," + bos.toString("8859_1")); elem.appendChild(document.createTextNode(" ")); + } catch (IOException e) { e.printStackTrace(); } finally { @@ -274,28 +269,58 @@ public class ExporterFactory { } } + @NotNull + private String fixHref(@NotNull Element elem) { + // Fix href attribute ... + // Hack for IE: If the image is a external URL, embeed it... + String result = elem.getAttribute("href"); + if (result.isEmpty()) { + + result = elem.getAttribute("xlink:href"); + if (!result.isEmpty()) { + elem.removeAttribute("xlink:href"); + } + + // Bug WISE-422: This seems to be a bug in Safari. For some reason, img add prefixed with NS1 + // + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment démarrer ? + + + + + + + + + +Propriétés des noeuds + + + + + + + + + + +Ajouter des liens vers des pages web + + + + + + + + + + +Ajouter Notes + + + + + + + + + + +Icônes fantaisie + + + + + + + + + + +Multiples Styles de Texte + + + + + + + + +Couleurs de caractères + + + + + + + + +Styles de caractères + + + + + + + + +Types de caractères + + + + + + + + +Differentes Formes + + + + + + + + +Edition avec le clavier + + + + + + + + + + +Se déplacer entre les noeuds avec les flèches + + + + + + + + +Pour éditer, commencer à taper du texte + + + + + + + + +Appuyer sur Ctrl/Meta+Enter pour ajouter un noeud enfant + + + + + + + + +Appuyer sur Enter pour ajouter un noeud de même niveau + + + + + + + + +Plus de ?. Cliquer sur les raccourcis + + + + + + + + +Partage + + + + + + + + +Inviter des amis + + + + + + + + +Encapsuler dans un blog + + + + + + + + +Publier votre carte + + + + + + + + +Edition avec la souris + + + + + + + + + + +Double-Clic sur un noeud : édite le texte + + + + + + + + +Double-Clic sur le fond : créer un noeud + + + + + + + + +Déplacer la position des noeuds + + + + + + + + +Utiliser la barre d'outils + + + + + + + + + + diff --git a/wise-webapp/src/test/resources/data/svg/export.pdf b/wise-webapp/src/test/resources/data/svg/export.pdf new file mode 100644 index 00000000..ea60b716 Binary files /dev/null and b/wise-webapp/src/test/resources/data/svg/export.pdf differ diff --git a/wise-webapp/src/test/resources/data/svg/export.png b/wise-webapp/src/test/resources/data/svg/export.png new file mode 100644 index 00000000..e69de29b diff --git a/wise-webapp/src/test/resources/data/svg/export.svg b/wise-webapp/src/test/resources/data/svg/export.svg new file mode 100644 index 00000000..d9e5e626 --- /dev/null +++ b/wise-webapp/src/test/resources/data/svg/export.svg @@ -0,0 +1,2 @@ +Comment démarrer ?Propriétés des noeudsAjouter des liens vers des pages webAjouter NotesIcônes fantaisieMultiples Styles de TexteCouleurs de caractèresStyles de caractèresTypes de caractèresDifferentes FormesEdition avec le clavierSe déplacer entre les noeuds avec les flèchesPour éditer, commencer à taper du texteAppuyer sur Ctrl/Meta+Enter pour ajouter un noeud enfantAppuyer sur Enter pour ajouter un noeud de même niveauPlus de ?. Cliquer sur les raccourcisPartageInviter des amisEncapsuler dans un blogPublier votre carteEdition avec la sourisDouble-Clic sur un noeud : édite le texteDouble-Clic sur le fond : créer un noeud Déplacer la position des noeudsUtiliser la barre d'outils +