Question

Actuellement, nous utilisons OpenOffice pour les signets d'appui dans un document de fichier modèle et les remplacer par le contenu de notre base de données via Java. Les lignes de code qui permettent d'économiser réellement l'apparence de fichiers comme celui-ci ...

  XStorable storable = UnoRuntime.queryInterface(XStorable.class, document);


        // Save as Word 97 Document
        PropertyValue[] properties = new PropertyValue[1];
        PropertyValue property = new PropertyValue();
        property.Name = "FilterName";
        property.Value = FORMAT_WORD_97;
        properties[0] = property;
        storable.storeAsURL(saveFileURL, properties);

Nous voulons écrire directement le fichier à la outputstream de réponse de servlet, ne sait de qui que ce soit d'une façon d'obtenir directement le document comme un tableau d'octets ou InputStream via l'API UNO OpenOffice en Java?

Était-ce utile?

La solution

Cela dépend de la mise en œuvre de l'API de l'ONU. Nous avons pu le faire avec PDF,

    OutputStream os = response.getOutputStream();

    PropertyValue[] properties = new PropertyValue[2];
    PropertyValue property = new PropertyValue();
    property.Name = "FilterName";
    property.Value = FORMAT_WORD_97;
    properties[0] = property;
    PropertyValue streamProp = new PropertyValue();
    streamProp.Name = "OutputStream;
    streamProp.Value = os;
    properties[1] = streamProp;

    storable.storeAsURL("private:stream", properties);

Autres conseils

Je suggère d'enregistrer le fichier localement d'abord (de l'API de l'ONU) en continu le résultat de votre code Java avant de supprimer le fichier [temp]. La raison est que vous pouvez séparer un problème avec la génération du document par OpenOffice de votre livraison au client. Par exemple, si vous êtes le document parvient pas à générer, vous pouvez produire une erreur sans problèmes une réponse écrite partiellement transmis en continu à un client. En outre, si vous ne l'avez pas regardé les outils déjà, vous voudrez peut-être regarder Docmosis qui fournit la redondance, la performance fonctions d'optimisation et de données à la fusion. Il peut rendre directement à un flux que vous donnez (et prend vraisemblablement en charge la question partielle transmis en continu-résultat).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top