Hi
My goal is to store the merged document on a database as a byteArray. I am
not being able to do this. Then I am trying to stored the merged document on
disk and after moving it to the database.
Do you know where I can find one example about this?
In my current code I want to read a lot of word document from database as an
InputStream array, but I am not being able to merge them into another
document.
regards
Stephan Wunderlich wrote:
>
> Hi there,
>
>> I am newer in OpenOffice. Could you give me some example that use
>> XTextDocument?
>> Because I am understanding. Below theres is a pience of code that I
>> am using
>> but it doesn't work.
>>
>>
>> public OutputStream comporDocumentosDocParaDoc(List colecao)
>> throws java.io.IOException, DocumentException, IOException,
>> IllegalArgumentException, BootstrapException
>> {
>> ConversorDeDocumento conversor = new ConversorDeDocumento();
>> //prepare base document
>> //move the document to byteArray
>> InputStream docBase = (InputStream)colecao.get(0);
>> ByteArrayOutputStream arrayByteDocBase = new
>> ByteArrayOutputStream();
>> docBase.toString();
>> IOUtils.copy(docBase,arrayByteDocBase);
>> //via URL
>> File arqBase = new File("M:\\Aloizio_SS\\SINF2\\DOCS\\arq0.doc");
>> FileOutputStream fout = new FileOutputStream(arqBase,true);
>> fout.write(arrayByteDocBase.toByteArray());
>> fout.close();
>>
>> //upload the base document into open office
>> XComponent docFinal =
>> carregarDocumentoOpenOffice(arqBase, "DOC");
>>
>> //iterator over document list
>> for(int i = 1; i < colecao.size(); i++)
>> {
>> InputStream arqDoc = (InputStream)colecao.get(i);
>> //move the document to byte array
>> ByteArrayOutputStream arrayByteDoc = new ByteArrayOutputStream
>> ();
>> IOUtils.copy(arqDoc,arrayByteDoc);
>>
>> //via URL
>> File arqDocAux = new
>> File("M:\\Aloizio_SS\\SINF2\\DOCS\\arq"+i+".doc");
>> FileOutputStream foutAux = new FileOutputStream(arqDocAux);
>> foutAux.write(arrayByteDoc.toByteArray());
>> foutAux.close();
>>
>>
>> //consulta a interface XTextDocument para obter o texto
>> XTextDocument mxDoc =
>> (XTextDocument)UnoRuntime.queryInterface(XTextDocument.class,
>> docFinal);
>> XText mxDocText = mxDoc.getText();
>> // create a cursor
>> XTextCursor mxDocCursor = mxDocText.createTextCursor();
>> mxDocCursor.gotoEnd(false);
>>
>> XDocumentInsertable lXDocInsertable = (XDocumentInsertable)
>> UnoRuntime.
>> queryInterface(XDocumentInsertable.class, mxDocCursor);
>>
>> PropertyValue[] loadProps = new PropertyValue[0];
>> String url = createUNOFileURL(arqDocAux.getAbsolutePath());
>> OOInputStream oois = new OOInputStream
>> (arrayByteDoc.toByteArray());
>> PropertyValue[] loadProps = new PropertyValue[3];
>> loadProps[0] = new PropertyValue();
>> loadProps[0].Name = "Hidden";
>> loadProps[0].Value = new Boolean(true);
>> loadProps[1] = new PropertyValue();
>> loadProps[1].Name = "FilterName";
>> loadProps[1].Value = new Boolean(true);
>> loadProps[2] = new PropertyValue();
>> loadProps[2].Name = "InputStream";
>> loadProps[2].Value = oois;
>> lXDocInsertable.insertDocumentFromURL("private:stream",
>> loadProps);
>> }
>>
>> XStorable xstorable = ( XStorable ) UnoRuntime.queryInterface(
>> XStorable.class,
>> docFinal );
>>
>
> here you query XStorable, which should work properly, but you don't
> use it to actually store the document.
>
>> XComponent xComponent = ( XComponent ) UnoRuntime.queryInterface(
>> XComponent.class, xstorable );
>> xComponent.dispose();
>
> Here you dispose the document and with that destroy it ... generally
> XCloseable.close() should work smoother :-)
>
>> byte[] docFundido = obterDocumentoComposto(docFinal);
>> InputStream fim = new ByteArrayInputStream(docFundido);
>> OutputStream out = new ByteArrayOutputStream();
>> IOUtils.copy(fim,out);
>> return out;
>
> mmm ... some lines above you dispose docFinal and now you try to
> write something related to it to a java output stream ?
>
> Is the goal to have a Microsoft word document on disk after merging
> several document in one ?
>
> I'm a bit lost here.
>
> Regards
>
> Stephan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/How-can-I-concatenate-a-stream-word-collection-tf2197851.html#a6101748
Sent from the openoffice - api dev forum at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]