{"id":1960,"date":"2013-07-27T18:12:44","date_gmt":"2013-07-27T16:12:44","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1960"},"modified":"2013-08-26T17:21:40","modified_gmt":"2013-08-26T15:21:40","slug":"jopendocument-api-2","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/07\/jopendocument-api-2\/","title":{"rendered":"JOpenDocument API"},"content":{"rendered":"<p>Zum Zugriff auf Dokumente und Spreadsheets von OpenOffice (for OASIS Open Document ) ist JOpenDocument (<a href=\"http:\/\/www.jopendocument.org\/\">http:\/\/www.jopendocument.org\/<\/a>) eine GPL-Bibliothek, die das mit einer einfachen API unterst\u00fctzt.<\/p>\n<p>Etwa das Laden und Ver\u00e4ndern von Spreadsheets:<\/p>\n<pre lang=\"java\">\r\nFile file = new File( \"c:\/in.ods\" );\r\nSpreadSheet createFromFile = SpreadSheet.createFromFile( file );\r\nSheet sheet = createFromFile.getSheet( 0 );\r\nsheet.setValueAt( \"Filling test\", 1, 1 );\r\nsheet.getCellAt( \"A1\" ).setValue( \"On site support\" );\r\nsheet.getCellAt( \"I10\" ).setValue( new Date() );\r\nsheet.getCellAt( \"F24\" ).setValue( 3 );\r\nFile outputFile = new File( \"c:\/out.ods\" );\r\nsheet.getSpreadSheet().saveAs( outputFile );\r\n<\/pre>\n<p>Weitere Beispiele gibt <a href=\"http:\/\/www.jopendocument.org\/documentation.html\">http:\/\/www.jopendocument.org\/documentation.html<\/a>.<\/p>\n<p>Interessant ein ein purer Java-Viewer, und damit die M\u00f6glichkeit in PDF zu exportieren, ohne dass man OO dazu fernsteuern muss.<\/p>\n<p>Beim Testen der SpreadSheet-API sind mir leider einige Nachteile aufgefallen:<\/p>\n<ul>\n<li>Es gibt keine <a href=\"http:\/\/groups.google.com\/group\/jopendocument\/browse_thread\/thread\/170c4723e86ee14d\">Named References<\/a><\/li>\n<li>Die API ist sehr Datei-orientiert. <a href=\"http:\/\/groups.google.com\/group\/jopendocument\/browse_thread\/thread\/b459855917625aca\">Nur im Speicher Dokumente<\/a> anzulesen und zu verarbeiten ist nicht m\u00f6glich. Ich sehe erst einmal keine Methode, wie ein Servlet z.B. sich den InputStream auf ein OO-Dokuments holen und als OutputStream an den Client verschicken kann, ohne dass man vorher das OO-Dokument in eine Datei schreibt. <\/li>\n<li>Soll der eingebauter Viewer verwendet werden, k\u00f6nnen <a href=\"http:\/\/groups.google.com\/group\/jopendocument\/browse_thread\/thread\/2fe307c67706df78\">TIFF-Bilder nicht angezeigt<\/a> werden. <\/li>\n<li>GPL k\u00f6nnte f\u00fcr einige Bereiche ein Problem sein. Es werden aber kommerzielle Lizenzen verkauft.<\/li>\n<li>Nur das Anzeigen von einfachen Dokumenten ist m\u00f6glich.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Zum Zugriff auf Dokumente und Spreadsheets von OpenOffice (for OASIS Open Document ) ist JOpenDocument (http:\/\/www.jopendocument.org\/) eine GPL-Bibliothek, die das mit einer einfachen API unterst\u00fctzt. Etwa das Laden und Ver\u00e4ndern von Spreadsheets: File file = new File( &#8222;c:\/in.ods&#8220; ); SpreadSheet createFromFile = SpreadSheet.createFromFile( file ); Sheet sheet = createFromFile.getSheet( 0 ); sheet.setValueAt( &#8222;Filling test&#8220;, 1, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[],"class_list":["post-1960","post","type-post","status-publish","format-standard","hentry","category-open-source"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1960"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1960\/revisions"}],"predecessor-version":[{"id":2152,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1960\/revisions\/2152"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}