Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > открыть документ open office в апплете


Автор: joker332 25.1.2010, 01:13
как средствами java создать апплет, который открывает файл open oficce в формате odt???
может подкинете ссылочку!какие библиотеки?В гугле не могу ничего толкового найти!

Автор: AsyncCallback 25.1.2010, 13:34
Цитата(joker332 @  25.1.2010,  01:13 Найти цитируемый пост)
как средствами java создать апплет, который открывает файл open oficce в формате odt???

Вам нужно что-бы документ открылся в браузере или средствами Oo?
Используй Оо Sdk

Автор: joker332 25.1.2010, 19:27
В браузере!!!Мне потом после манипуляций с ним нужно будет его сохранить!
Как это организовать?

Автор: AsyncCallback 26.1.2010, 05:27
Цитата(joker332 @  25.1.2010,  19:27 Найти цитируемый пост)
В браузере!!!Мне потом после манипуляций с ним нужно будет его сохранить!

Думаю в раузере никак, он-браузер вряд ли понимает, что это такое, а стандартным образом(программным) можно его открыть, хоть какие проводить манипуляции, и затем сохранить(и все это можете делать не вы, а ваш код на java)

Автор: LSD 26.1.2010, 12:21
http://api.openoffice.org/docs/DevelopersGuide/OfficeBean/OfficeBean.xhtml. возможно эта штука потребует чтобы у пользователя был установлен ОО, проверь.

Автор: joker332 5.2.2010, 01:14
вот смотрите у меня есть код
Код
package zd;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.bruceeckel.swing.*;

public class mnu extends JApplet {
      JTextField t = new JTextField(15);
      ActionListener al = new ActionListener() {
        public void actionPerformed(ActionEvent e){
          t.setText(
            ((JMenuItem)e.getSource()).getText());
        }
      };
      JMenu[] menus = { new JMenu("Winken"), 
        new JMenu("Blinken"), new JMenu("Nod") };
      JMenuItem[] items = {
        new JMenuItem("Fee"), new JMenuItem("Fi"),
        new JMenuItem("Fo"),  new JMenuItem("Zip"),
        new JMenuItem("Zap"), new JMenuItem("Zot"), 
        new JMenuItem("Olly"), new JMenuItem("Oxen"),
        new JMenuItem("Free") };
      public void init() {
        for(int i = 0; i < items.length; i++) {
          items[i].addActionListener(al);
          menus[i%3].add(items[i]);
        }
        JMenuBar mb = new JMenuBar();
        for(int i = 0; i < menus.length; i++)
          mb.add(menus[i]);
        setJMenuBar(mb);
        Container cp = getContentPane();
        cp.setLayout(new FlowLayout());
        cp.add(t); 
      }
      public static void main(String[] args) {
        Console.run(new SimpleMenus(), 200, 75);
      }
    } 



как при нажатии на елемент меню Fee открылся документ 1.odt?????
Это все должно открываться в браузере, а не запускаться опен офис!
Если я правильно понемаю, то нужно написать обратотчик xml файла или как это правильно сделать???

Автор: dobrolub 5.2.2010, 02:06
Можно вставить с помощью sun.plugin.javascript.JSObject HTML element

http://java.sun.com/products/plugin/1.3/docs/jsobject.html#Enable

Код

<object type="application/vnd.oasis.opendocument.text"
        data="data/test.odt" width="600" height="1000">
  alt : <a href="data/test.odt">test.odt</a>
</object>



Автор: Zdane 5.2.2010, 02:33
как содержимое документа *.odt загрузить например в JTextArea???

Автор: dobrolub 5.2.2010, 03:36
надо написать extention, понимающий формат офиса к javax.swing.text.Document, если такого нет. Или сконвертировать в rtf/html и загрузить в JTextArea. Но такие фокусы будут работать только для просмотра (без изменений). Иначе смотри сообщение от LSD

Автор: joker332 9.2.2010, 20:55
вот нашел пример с таким кодом
Код
final OpenDocument doc = new OpenDocument();
 doc.loadFrom("invoice.ods");

 // Show time !
 final JFrame f = new JFrame("Invoice Viewer");
 ODSViewerPanel viewer = new ODSViewerPanel(doc);///вот здесь ошибка вылазит
 f.setContentPane(viewer);
 f.pack();
 f.setVisible(true);

даный пример отображает одс файл на фрейме, но если на этот фрейм попытаться вывести одт документ то выдает ошибку в такой строке ODSViewerPanel viewer = new ODSViewerPanel(doc);
что делать?)

Автор: dobrolub 9.2.2010, 21:17
что за ошибка?

Автор: joker332 10.2.2010, 00:19
Код
content.xml : ignoring :office:document-content
java.lang.NullPointerException
    at org.jopendocument.util.ValueHelper.getBoolean(Unknown Source)
    at org.jopendocument.io.SaxContentUnmarshaller.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.jopendocument.model.OpenDocument.loadFrom(Unknown Source)
    at org.jopendocument.model.OpenDocument.loadFrom(Unknown Source)
    at Office.odf.main(odf.java:29)
Exception in thread "main" java.lang.IllegalArgumentException: OfficeBody cannot be null
    at org.jopendocument.model.OpenDocument.init(Unknown Source)
    at org.jopendocument.model.OpenDocument.loadFrom(Unknown Source)
    at org.jopendocument.model.OpenDocument.loadFrom(Unknown Source)
    at Office.odf.main(odf.java:29)


а если поменять на файл екселя, то все нормально!!

Автор: dobrolub 10.2.2010, 06:22
плохая ошибка... нужно вытащить ValueHelper и исправить ему getBoolean(...) method чтобы мог принимать nulls...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)