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]

Reply via email to