Pregunta

Necesito poder permitir a los usuarios exportar sus archivos .doc (que cargan) a una variedad de formatos. Comencé a usar OO SDK, y configuré algunos filtros personalizados usando XSLT también. Todo funciona bien y puedo exportar documentos de Word a PDF, etc.

Sin embargo, quiero ejecutar esto como un servicio web. Deseo ejecutar este servicio de conversión en un nodo dedicado, de modo que todas las cargas de archivos por parte de los usuarios que deseen convertir su documento lleguen a este nodo dedicado. Mi aplicación web en sí está basada en PHP. ¿Cuál es la mejor manera de realizar la conversión con OO SDK? Tendré que almacenar el archivo resultante en DB también.

¿Necesito ejecutar varias instancias de OO y alimentar cada archivo para convertirlo en una instancia específica? Y, ¿necesito escribir un servidor personalizado para manejar esto, ya que no sé si OO es multiproceso? Cualquier consejo muy apreciado.

¿Fue útil?

Solución

¿Ha investigado el uso de JODConverter ? Hace todo el trabajo pesado por ti.

Otros consejos

Usando los cli dlls intente con el siguiente código

public conversion()
{
        unoidl.com.sun.star.uno.XComponentContext localContext =uno.util.Bootstrap.bootstrap();

        unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory =(unoidl.com.sun.star.lang.XMultiServiceFactory)localContext.getServiceManager();

        XComponentLoader componentLoader =(XComponentLoader)multiServiceFactory.createInstance("com.sun.star.frame.Desktop");

        XComponent xComponent = componentLoader.loadComponentFromURL(PathConverter(FileName1),"_blank", 0,new PropertyValue[] {MakePropertyValue("Hidden", true)});

        unoidl.com.sun.star.beans.PropertyValue [] propertyValues;
        propertyValues = new unoidl.com.sun.star.beans.PropertyValue[2];
        // Setting the flag for overwriting
        propertyValues[0] = new unoidl.com.sun.star.beans.PropertyValue();
        propertyValues[0].Name = "Overwrite";
        propertyValues[0].Value = new Any(true);
        // Setting the filter name
        propertyValues[1] = MakePropertyValue("FilterName", "HTML (StarWriter)");
        /*propertyValues[1] = new unoidl.com.sun.star.beans.PropertyValue();
        propertyValues[1].Name = "FilterName";
        propertyValues[1].Value = new uno.Any("HTML (StarWriter)"); // writer_pdf_Export  ,  swriter: MS Word 97 , HTML (StarWriter) ,*/

        XStorable xStorable = xComponent as XStorable;xStorable.storeToURL(PathConverter(FileName),propertyValues);
}

Para obtener una lista completa de nombres de filtro para exportar, busque otra respuesta que di antes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top