jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dirk V. Schesmer" <dirk.sches...@mac.com>
Subject Re: Accessing Word and PDF Content
Date Tue, 25 Apr 2006 05:19:01 GMT
>>

Marcel, thanks!
I can now get baxck my MS-Word file!
> an optional encoding when supported by the mime type

How can I find out which mime type supports and/or requires which  
encoding? Does the JCR-API support me here?

Thanks for help,
Dirk

BTW: Is there a comprehensive demo application I can have a look at  
to further endeepen my JCR knowledge ?

>> docResourceNode.setProperty("jcr:mimeType", docMimeType);
>>         //resourceNode.setProperty("jcr:encoding", ""); //Needed?

Am 24.04.2006 um 08:46 schrieb Marcel Reutegger:

> Dirk V. Schesmer wrote:
>>>>>
>> Hi All,
>> I'd like to ask for help telling me how I can extract the content  
>> of file testwordfile.doc and save it in the local file system. I  
>> am already able to save it successfully into my jackrabbit  
>> repository using the addDocFile() method below. Also, I can find  
>> it using the saveDocMethod() also shown below. But how to extract  
>> the content, to determine e.g. the mime type and to set the  
>> encoding needed to save it successfully?
>
> an nt:resource is just a binary stream and may have an optional  
> encoding when supported by the mime type. e.g. a word document will  
> not have an encoding, but a plain text file will have one.
>
> to read the document from the repository you simply navigate to the  
> binary data property and get the value as an input stream:
>
> Node resource = ...
> InputStream in = resource.getProperty("jcr:data").getStream();
> // now spool the stream to a local file...
>
>
> regards
>  marcel
>
>> Any help appreciated!
>> Dirk V. Schesmer
>> Stuttgart/Germany
>> -------
>>     public void addDocFile(Node root, Session session) throws  
>> Exception {
>>         Node folderNode = root.addNode("foldernode", "nt:folder");
>>         File docFile = new
>>                        File("/Users/dschesmer/jackrabbitJCR/ 
>> testdocuments/testwordfile.doc");
>>         Node docFileNode = folderNode.addNode(docFile.getName(),
>>                                               "nt:file");
>>         String docMimeType = "application/msword";
>>         Node docResourceNode = docFileNode.addNode("jcr:content",
>>                 "nt:resource");
>>         docResourceNode.setProperty("jcr:mimeType", docMimeType);
>>         //resourceNode.setProperty("jcr:encoding", ""); //Needed?
>>         docResourceNode.setProperty("jcr:data", new
>>                                     FileInputStream(docFile));
>>         Calendar docLastModified = Calendar.getInstance();
>>         docLastModified.setTimeInMillis(docFile.lastModified());
>>         docResourceNode.setProperty("jcr:lastModified",  
>> docLastModified);
>>         session.save();
>>     }
>>     public void saveDocFile(Node root, Session session) throws  
>> Exception {
>>         //Now do my test search
>>         Workspace workspace = session.getWorkspace();
>>         QueryManager queryManager = workspace.getQueryManager();
>>         Query query =
>>                 queryManager.createQuery(
>>                         "/jcr:root/foldernode//*", Query.XPATH);
>>         QueryResult result = query.execute();
>>         NodeIterator niter = result.getNodes();
>>         while (niter.hasNext()) {
>>             Node n = niter.nextNode();
>> // toDo: extract word doc and save it into the file system...
>>             System.out.println("node: "+n);
>>         }
>>     }
>


Mime
View raw message