Crear documento Word desde Web Client

cancel
Showing results for 
Search instead for 
Did you mean: 
ruben_arjonilla
Member II

Crear documento Word desde Web Client

Buenas,

tengo un pequeño problema a la hora de crear un documento de word desde el Web Client.
Soy capaz de crearlo (para ello he añadido estas lineas en el fichero web-client-config-custom.xml)
<config evaluator="string-compare" condition="Content Wizards">

   <create-mime-types>
      <mime-type name="application/msword" />
      <mime-type name="application/vnd.ms-excel" />
   </create-mime-types>

</config>

Al darle al botón Create Content, se me abre la pantalla donde escojo el "type" y el "Content Type", y en este ultimo, a parte de salirme los típicos HTML, Plain Text y XML, me salen también Microsoft Word y Microsoft Excel (los añadidos en las lineas anteriores).

Le doy a siguiente y me sale la pantalla de "Enter Content", donde le añado el contenido de forma plana  (y aquí es donde creo que esta el problema, que me debe crear el documento de Word como de si un Plain Text se tratara).
Siguiendo los demás pasos, me crea un documento de word con los meta datos y todo correcto.

El problema viene cuando me descargo este documento y lo quiero editar (ya sea con openoffice o con el word), al abrirlo ya me dice que pasa una pantalla para que seleccione con que codificación quiero abrirlo, que fuentes utilizar y el lenguaje (entiendo que esto debe ser porque el documento de word que he creado, es como si fuera un Plain Text).
Si lo modifico, y le pongo negrita, algún color, alguna que otra tabla y lo guardo, me salta el siguiente mensaje:
This document may contain formatting or content that cannot be saved in the Text Encoded file format. Do you want to save document in this format anyway?

Si le digo que si, no se me guardan las negritas ni los colores ni las tablas ni nada, solo el texto en formato plano, y si le digo que no, me permite guardarlo con otro nombre.

También me da error, por ejemplo, desde el alfresco transformar el documento a PDF, me salta el siguiente mensaje:
12:14:49,978 User:admin ERROR [ui.common.Utils] Failed to run Actions due to error: 02090100 Content conversion failed: 
   reader: ContentAccessor[ contentUrl=store://2011/3/9/12/14/1fc73c7b-111a-426b-ab97-363e8bd19d3d.bin, mimetype=application/msword, size=6, encoding=UTF-8, locale=en_US]
   writer: ContentAccessor[ contentUrl=store://2011/3/9/12/14/bb41c4ed-897f-473e-b163-85bf57ae063a.bin, mimetype=application/pdf, size=0, encoding=UTF-8, locale=en_US]
   options: org.alfresco.service.cmr.repository.TransformationOptions@318e74
org.alfresco.service.cmr.repository.ContentIOException: 02090100 Content conversion failed:
   reader: ContentAccessor[ contentUrl=store://2011/3/9/12/14/1fc73c7b-111a-426b-ab97-363e8bd19d3d.bin, mimetype=application/msword, size=6, encoding=UTF-8, locale=en_US]
   writer: ContentAccessor[ contentUrl=store://2011/3/9/12/14/bb41c4ed-897f-473e-b163-85bf57ae063a.bin, mimetype=application/pdf, size=0, encoding=UTF-8, locale=en_US]
   options: org.alfresco.service.cmr.repository.TransformationOptions@318e74
   at org.alfresco.repo.content.transform.AbstractContentTransformer2.transform(AbstractContentTransformer2.java:170)


Tengo que añadir alguna otra linea al web-client-config-custom.xml para que esto funcione correctamente?
O quizas tengo algun problema con mi Alfresco?

Muchas gracias de antemano
2 Replies
ruben_arjonilla
Member II

Re: Crear documento Word desde Web Client

He probado exactamente lo mismo en otro Alfresco que tenemos montado (misma version que el otro), y la transformación a PDF si que la hace, pero continuo teniendo el problema de que el documento que estoy creando no tiene formato.
ruben_arjonilla
Member II

Re: Crear documento Word desde Web Client

Ya esta solucionado, no de manera directa, pero si de manera indirecta.
Para quien le interese os pongo lo que hemos echo.

Primero de todo, hemos "creado" un nuevo mimetype personalizado.

En …/shared/classes/alfresco/extension hemos creado el fichero "mimetype-map-extension-context.xml" con el siguiente contenido:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
    <bean id="mimetypeConfigService" class="org.springframework.extensions.config.xml.XMLConfigService" init-method="init">
        <constructor-arg>
            <bean class="org.springframework.extensions.config.source.UrlConfigSource">
                <constructor-arg>
                    <list>
                        <value>classpath:alfresco/mimetype/mimetype-map.xml</value>
                        <value>classpath:alfresco/mimetype/mimetype-map-openoffice.xml</value>
                        <value>alfresco/extension/mimetype/mimetypes-custom-extension.xml</value>
                    </list>
                </constructor-arg>
            </bean>
        </constructor-arg>
    </bean>
</beans>

Hemos creado la carpeta …/shared/classes/alfresco/extension/mimetype y dentro hemos creado el fichero "mimetypes-custom-extension.xml" con el siguiente contenido:
<alfresco-config area="mimetype-map">
   <config evaluator="string-compare" condition="Mimetype Map">
     <mimetypes>
       <mimetype mimetype="application/mswordcustom" display="Microsoft Word Custom">
         <extension default="false">doccustom</extension>
       </mimetype>
     </mimetypes>
   </config>
</alfresco-config>

Hemos modificado el fichero …/shared/classes/alfresco/extension/web-client-config-custom.xml y hemos añadido las siguientes lineas, para habilitar la creación de archivos con nuestro mimetype desde el webclient:

<config evaluator="string-compare" condition="Content Wizards">

   <create-mime-types>
      <mime-type name="application/mswordcustom" />
   </create-mime-types>

</config>

Hemos creado el siguiente script en javascript "create-ms-word-copy-content-plantilla.js", que hemos subido desde webclient a alfresco (companyHome –> scripts)
function main()
{
   var doc = companyhome.childByNamePath("PlantillasOffice/plantilla.doc");
   document.properties["cm:content"]=doc.properties["cm:content"];
   document.save();
}

main();

Como veis, lo que hace este script es coger un documento word en blanco "plantilla.doc", que previamente hemos subido a la carpeta companyHome/PlantillasOffice (Hay que darle permisos de lectura a esta carpeta a todo el mundo, sinos no podran acceder a ella, y por tanto, el script fallara), y copiamos el content de este al documento actual. Por ultimo guardamos el documento.

Lo siguiente es crear la siguiente regla en companyHome.
Paso 1:
1- Seleccionamos "Content of mimetype"
2- Le damos a set Value y en Type, seleccionamos el mimetype creado al principio, en este caso "Microsoft Word Custom"
Paso 2:
1- Seleccionamos "Execute script"
2- Seleccionamos el script creado anteriormente "create-ms-word-copy-content-plantilla.js"
Paso 3:
en Type, seleccionamos "Items are created or enter thi8s folder", le ponemos el title y description apropiado para saber que hace la regla y activamos el checkbox de "Apply rule to sub spaces"

Le damos a finalizar y listo.

Con esta regla lo que decimos es que, cualquier archivo que se cree con el mimetype "application/mswordcustom", le ejecutaremos el script para que su contenido sea el mismo que el de un documento de word en blanco, asi evitamos el problema de que crea el contenido sin formato.

Ahora para hacer la prueba, simplemente vamos a cualquier carpeta, le damos a Create –> Create Content
Ponemos el nombre del fichero, por ejemplo prueba.doc, seleccionamos el Type, por ejemplo Content, y seleccionamos el content Type (nos sale HTML, Plain Text, XML y Microsoft Word Custom).

Al crear el fichero con el nuestro nuevo mimetype ejecutaremos el script, y ya tendremos listo un documento en blanco de word creado desde Alfresco Web Client.

Esto lo podemos aplicar a cualquier tipo de contenido, simplemente tendremos que tener un script para cada uno de ellos, una plantilla en blanco y nuestro mimetype correspondiente a cada uno de ellos.

Alfresco realmente no sabe crear documentos de Word? o es que estábamos realizando algo mal? Nadie de Alfresco ha dicho nada sobre este tema?
Realmente creo que hay muy poca información al respecto, y creo que, para un entorno documental, debería ser clave el poder crear este tipo de documentos.

Espero que os sirva de ayuda este post.