Pergunta

Eu tenho uma necessidade para ser capaz de permitir aos usuários exportar seus arquivos .doc (que eles upload) para uma variedade de formatos. I começou em usar OO SDK, e eu set-up alguns filtros personalizados usando XSLT também. Tudo funciona bem e eu sou capaz de palavra docs de exportação para pdf etc.

No entanto, eu quero correr este como um serviço web. Eu desejo para executar este serviço de conversão em um nó dedicado, para que todos os uploads de arquivos por usuários que querem converter o seu documento vai chegar a esse nó dedicado. Meu web aplicativo em si é baseado em PHP. Qual é a melhor maneira de realizar a conversão usando OO SDK? Vou ter que armazenar o arquivo resultante no DB também.

Eu preciso executar várias instâncias do OO e alimentar cada arquivo a ser convertido para uma instância específica? E, que eu preciso para escrever um servidor personalizado para lidar com isso, como eu não sei se OO é multithreaded. Qualquer conselho muito apreciada.

Foi útil?

Solução

Você olhou em usar JODConverter ? Ele faz todo o trabalho pesado para você.

Outras dicas

Usando as DLLs cli tentar com o seguinte 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 obter uma lista completa de filternames às exportações olhar em outra resposta que dei antes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top