2012-04-11 3 views
2

Так что я пытаюсь получить файл XML документа OPC с плоским файлом.Конвертирование и OPC (Open Packaging Convention) файл в и файл XML в JAVA

Я использую OPCPackage из org.apache.poi.openxml4j

В C++ вы есть вызов, который создает плоский файл XML из этого архивного файла.

Кто-нибудь знает, как это сделать на Java?

Также любое хорошее чтение, связанное с OPC и Java, было бы удивительным.

Большое спасибо

Приветствия

UPDATE: связанные с комментарием я сделал только ответ ...

код

// imports 
    import org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator; 
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 

    // code snippet 
    WordprocessingMLPackage wmlPkg = null; 
    try 
    { 
     wmlPkg = WordprocessingMLPackage.load(inFile); 
    } 
    catch (Docx4JException ex) 
    { 
     //... 
    } 

    FlatOpcXmlCreator flatOpcWorker = new FlatOpcXmlCreator((wmlPkg)); 

    flatOpcWorker.marshal(new FileOutputStream(tmpFlatFile.getAbsolutePath())); 

Так вот фрагмент кода, и это приводит к ошибка компиляции:

не может найти символ символов: метод маршалом (java.io.FileOutputStream) расположение: переменная flatOpcWorker типа org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator

ответ

2

Мой проект docx4j имеет FlatOpcXmlCreator, который делает это; см. ConvertOutFlatOpenPackage sample

Если вы хотите использовать его с POI (который использует XML-компоненты, а не JAXB), я думаю, вы можете его перенести. Оба проекта - ASL, и обе части OPC основаны на OpenXML4J.

+0

проблема в том, что это не док. Его формат OPC. Будет ли это хорошо работать с общим форматом OPC. Я спрашиваю, потому что я не уверен, насколько конкретный Docx является вашим проектом. И не уверен, насколько различен, если вообще есть docx opc, отличается от других форматов, основанных на opc. – grobartn

+0

Нет ничего конкретного в docx, конструктор принимает OpcPackage, и он был протестирован и работает с pptx и xlsx. – JasonPlutext

+0

поэтому я стараюсь ваш пример и я получаю ошибку на этой линию worker.marshal (новый FileOutputStream (outputfilepath) он говорит предводитель «не может найти символ символа: метод маршала (java.io.FileOutputStream) местоположения: переменная flatOpcWorker типа org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator " Знаете, почему это так скажется – grobartn

 Смежные вопросы

  • Нет связанных вопросов^_^