3

I'm trying to generate a .docx from a HTML String with docx4j in Java, which contains Base64 images inside. At the moment, I'm being able to generate the Word and download it (inside a Vaadin project), but the images doesn't insert properly. However, if I put the HTML code into a index.html page, they do show correctly!

The code I'm using is this:

try{
    String html = "<html xmlns='http://www.w3.org/1999/xhtml'><head><style type='text/css'>.p-nombreProceso {   font-family: Arial;     font-size: 48px;    color: magenta;     text-align: center; } .li-seccion {     font-family: Arial; } .a-seccion {  font-family: Arial; } .p-tituloSeccion {    font-family: Arial;     font-size: 18px;    color: #e06666; } .p-subtitulo {    font-family: Arial;     font-size: 16px;    color: #434343;     font-weight: bold; } .p-subtitulo2 {    font-family: Arial;     font-size: 14px;    color: #434343;     font-weight: bold; } .table-default {   width: 100%;    border: none;   empty-cells: show; } .th-default {  background: #e06666;    text-align: center;     vertical-align: middle;     height: 30px;   font-family: Arial;     font-size: 14px;    color: white;   font-weight: bold; } .td-default-par {  background: #e0bbbb;    text-align: center;     vertical-align: middle;     height: 30px;   font-family: Arial;     font-size: 12px;    color: black; } .td-default-impar {     color: black; } .img-default {  margin: 0 auto;     display: block;     height: auto;   max-width: 100%; } .img-diagrama {  margin: 0 auto;     display: block;     height: auto;   max-width: 100%; } </style><meta content='text/html' http-equiv='Content-Type' charset='UTF-8'></head><body bgcolor='#F0F0F0' style='margin:10px'><div style='margin:auto;padding:10px;background-color:white;width:700px;'><p class='p-nombreProceso'>Comenzar el día</p><ol class='olIndice'><li class='li-seccion'><a class='a-seccion' href='#descripcionDelProceso'>DESCRIPCIÓN DEL PROCESO</a></li><li class='li-seccion'><a class='a-seccion' href='#duenoDelProceso'>DUEÑO DEL PROCESO</a></li><li class='li-seccion'><a class='a-seccion' href='#participantes'>PARTICIPANTES</a></li><li class='li-seccion'><a class='a-seccion' href='#diagramaDelProceso'>DIAGRAMA DEL PROCESO</a></li><li class='li-seccion'><a class='a-seccion' href='#catalogoDeElementos'>CATÁLOGO DE ELEMENTOS</a></li><li class='li-seccion'><a class='a-seccion' href='#actividades'>ACTIVIDADES</a></li></ol><a name='descripcionDelProceso'><p class='p-tituloSeccion'>1. DESCRIPCIÓN DEL PROCESO</p></a><div><p><span style='background-color:transparent; color:#434343; font-family:arial; font-size:15px'>Phasellus ut arcu ut nulla dignissim auctor. Etiam sed elit sed diam tempus consectetuer. Proin dignissim, velit a gravida elementum, metus tellus dictum mauris, quis auctor est lectus in sapien. Fusce diam arcu, ultricies non, ullamcorper feugiat, semper quis, tortor. Phasellus egestas feugiat augue. Vestibulum nec wisi. Vivamus lacus wisi, tincidunt quis, vulputate sit amet, placerat vitae, massa.</span></p>  <p><span style='background-color:transparent; color:#434343; font-family:arial; font-size:15px'>Nullam tortor. Fusce malesuada. Quisque dolor mauris, malesuada quis, ultricies non, interdum blandit, lectus. Etiam nulla lacus, nonummy a, blandit sed, pellentesque eget, arcu. Phasellus id pede. Vivamus tortor nibh, tempus auctor, interdum a, faucibus ut, mi. Aliquam tincidunt turpis eleifend orci. Mauris at odio vel metus ullamcorper blandit. Nullam tortor.</span></p> </div><a name='duenoDelProceso'><p class='p-tituloSeccion'>2. DUEÑO DEL PROCESO</p></a><p class='duenoProceso'>santiago.cotto</p><a name='participantes'><p class='p-tituloSeccion'>3. PARTICIPANTES</p></a><a name='diagramaDelProceso'><p class='p-tituloSeccion'>4. DIAGRAMA DEL PROCESO</p></a><div style='width:100%'><img alt='' src='data:image/png;base64,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' class='img-diagrama'/></div><a name='catalogoDeElementos'><p class='p-tituloSeccion'>5. CATÁLOGO DE ELEMENTOS</p></a><p class='p-subtitulo'>ACTIVIDADES</p><table cellspacing='0' cellpadding='0' class='table-default'><thead class='thead-default'><tr class='tr-default'><th class='th-default'>ACTIVIDAD</th><th class='th-default'>DESCRIPCIÓN</th><th class='th-default'>RESPONSABLE</th></tr></thead><tbody class='tbody-default'><tr class='tr-default'><td class='td-default-impar' rowspan='1'>Despertar</td><td class='td-default-impar' rowspan='1'>Abrir los ojos y tomar conciencia áéíóúñ</td><td class='td-default-impar'></td></tr><tr class='tr-default'><td class='td-default-par' rowspan='1'>Desayunar</td><td class='td-default-par' rowspan='1'>Desayuno nutritivo</td><td class='td-default-par'></td></tr><tr class='tr-default'><td class='td-default-impar' rowspan='1'>Volver a dormir</td><td class='td-default-impar' rowspan='1'>Vuelvo a cerrar los ojos y sigo durmiendo</td><td class='td-default-impar'></td></tr><tr class='tr-default'><td class='td-default-par' rowspan='1'>Ir a trabajar</td><td class='td-default-par' rowspan='1'>Ir al trabajo a continuar el día</td><td class='td-default-par'></td></tr></tbody></table><p class='p-subtitulo'>EVENTOS</p><table cellspacing='0' cellpadding='0' class='table-default'><thead class='thead-default'><tr class='tr-default'><th class='th-default'>EVENTO</th><th class='th-default'>DESCRIPCIÓN</th></tr></thead><tbody class='tbody-default'><tr class='tr-default'><td class='td-default-impar'></td><td class='td-default-impar'>Evento de comienzo</td></tr><tr class='tr-default'><td class='td-default-par'></td><td class='td-default-par'>Evento de cierre</td></tr></tbody></table><p class='p-subtitulo'>GATEWAYS</p><table cellspacing='0' cellpadding='0' class='table-default'><thead class='thead-default'><tr class='tr-default'><th class='th-default'>GATEWAYS</th><th class='th-default'>DESCRIPCIÓN</th></tr></thead><tbody class='tbody-default'><tr class='tr-default'><td class='td-default-impar'>¿Seguir durmiendo?</td><td class='td-default-impar'>Evalúo si puedo seguir durmiendo o debo levantarme</td></tr></tbody></table><a name='actividades'><p class='p-tituloSeccion'>6. ACTIVIDADES</p></a><p class='p-subtitulo'>Despertar</p><p class='descripcionActividades'></p><p class='p-subtitulo'>Desayunar</p><p class='descripcionActividades'></p><p class='p-subtitulo'>Volver a dormir</p><p class='descripcionActividades'></p><p class='p-subtitulo'>Ir a trabajar</p><div><p><strong>Dependiendo</strong> <u>c&oacute;mo est&eacute;</u> el d&iacute;a, y <u>cuanto tiempo tenga</u> para llegar al trabajo, puedo ir de alguna de las siguientes maneras:</p> </div><p></p><div><p>Otra opciones posibles podr&iacute;an ser:</p>  <ul>     <li>Ir en auto</li>     <li>Ir en taxi</li>     <li>Ir en bicicleta</li> </ul>";
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
    AlternativeFormatInputPart afiPart = new AlternativeFormatInputPart(new PartName("/hw.html"));
    afiPart.setBinaryData(html.getBytes());
    afiPart.setContentType(new ContentType("text/html"));
    Relationship altChunkRel = wordMLPackage.getMainDocumentPart().addTargetPart(afiPart);

    // .. the bit in document body
    CTAltChunk ac = Context.getWmlObjectFactory().createCTAltChunk();
    ac.setId(altChunkRel.getId() );
    wordMLPackage.getMainDocumentPart().addObject(ac);

    // .. content type
    wordMLPackage.getContentTypeManager().addDefaultContentType("html", "text/html");
    SaveToZipFile saver = new SaveToZipFile(wordMLPackage);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    saver.save(byteArrayOutputStream);
    return new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
}catch(Exception ex){
    return new ByteArrayInputStream(new String("ERROR: " + ex.getMessage()).getBytes());
}

Is there any special work that should be done, and I'm not doing?


EDIT:

I'm able to insert images now! Replacing code below WordprocessingMLPackage wordMLPackage line and above SaveToZipFile saver line with this:

StringReader strR = new StringReader(html);
Tidy tid = new Tidy();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
tid.parse(strR, baos);
html = baos.toString();
XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
wordMLPackage.getMainDocumentPart().getContent().addAll(xHTMLImporter.convert(html, null));

But now, the encoding isn't working properly: things like &aacute;, &ntilde; and &iquest; simply are not shown, instead of showing the proper characters (á, ñ and ¿ respectively). How should I make this work?

FranciscoBouza
  • 590
  • 6
  • 19
  • Well, with an AltChunk you're relying on Word to convert the HTML to docx content. You could try one of the convert XHTML samples at https://github.com/plutext/docx4j-ImportXHTML/tree/master/src/samples/java/org/docx4j/samples – JasonPlutext Nov 17 '14 at 11:59

1 Answers1

2

The issue is with Word rather than docx4j.

Microsoft Word doesn't support embedded data when it comes to importing XHTML. If you save your html string in a separate HTML file and try to open it in Word, you will see that it brings in the file with its formatting present, but the images are broken.

A better solution would be for your code to import the XHTML "natively" (rather than as an AltChunk: @JasonPlutext provides a link for doing that in his comment), and then bring the images in using custom code: i.e. extract and decode the Base64 content so you have binary data, and then pull that into Word using the docx4j API (BinaryPartAbstractImage.createImagePart() or similar).

Ben
  • 7,548
  • 31
  • 45
  • @JasonPlutext I've been looking at your collaboration and seems helpful! However, I haven't been able to put it inside my proyect. I didn't catch the idea both of you pointed out. How should I procede? I've been stuck for a while now... Thanks! – FranciscoBouza Nov 21 '14 at 17:26
  • 1
    See sample code https://github.com/plutext/docx4j-ImportXHTML/blob/master/src/samples/java/org/docx4j/samples/ConvertInXHTMLFragment.java You'll need the docx4j-ImportXHTML jar and its dependency, either from the docx4j website, or from Maven – JasonPlutext Nov 21 '14 at 20:55
  • Great! I used one of your examples and I'm able to insert images now! (added an Edit to the answer). However, I still have 2 problems: 1. The images don't respect the
    that surrounds them (while HTML put in a page does). [this picture](http://i.imgur.com/Ww1iNc1.png) and [this picture](http://i.imgur.com/ZnxAQkw.png) show both conditions on HTML and DOCX respectively! 2. The encoding isn't working properly: things like á, ñ and ¿ simply are not shown, instead of showing á, ñ and ¿ respectively. How should I make this work? Thanks Jason!
    – FranciscoBouza Nov 25 '14 at 20:07
  • 1
    As far as the "encoding" is concerned, see http://www.docx4java.org/forums/xhtml-import-f28/problems-while-converting-html-entities-t1197.html and https://github.com/plutext/docx4j/issues/79 – JasonPlutext Nov 25 '14 at 20:58
  • For your div align=center, try corresponding css (ie @style)? – JasonPlutext Nov 25 '14 at 20:59
  • @JasonPlutext I have no errors while generating the .docx, so neither of the links fit my issue. Tried to center the image with "style='margin: 0 auto';" (which works on HTML) and still no effect. In fact, tried setting any margin or padding to the image and it was also ignored, still showing a left text alignment... Any hints? – FranciscoBouza Nov 26 '14 at 18:28
  • You should create new questions for both these issues (though my answer to your character entity question won't change!). – JasonPlutext Nov 26 '14 at 18:45
  • @JasonPlutext I could fix the character entity issue! However, still couldn't fix the centered image. I created a new question for it [over this link](http://stackoverflow.com/questions/27228607/center-image-horizontally-inside-docx-generated-with-docx4j)! Thank you! – FranciscoBouza Dec 01 '14 at 12:39