2017-11-06 2 views
0
public void xmlToWordExport() throws Exception { 

    String input_DOCX = "D:/Temp/data_template/template.docx";  
    String input_XML = "D:/eclipse/jaxb.xml";  
    String OUTPUT_DOCX = "D:/eclipse-workspace/PWCRAR/OUT_ContentControlsMergeXML.docx";  
    WordprocessingMLPackage wordMLPackage = Docx4J.load(new File(input_DOCX)); 
      CustomXmlDataStoragePart customXmlDataStoragePart 
       = CustomXmlDataStoragePartSelector.getCustomXmlDataStoragePart(wordMLPackage); 
      if (customXmlDataStoragePart==null) { 
       System.out.println("Couldn't find CustomXmlDataStoragePart! exiting.."); 
       return;   
      } 
      System.out.println("Getting " + input_XML); 


    FileInputStream xmlStream = new FileInputStream(new File(input_XML)); 



    Docx4J.bind(wordMLPackage, xmlStream, Docx4J.FLAG_BIND_INSERT_XML | Docx4J.FLAG_BIND_BIND_XML | Docx4J.FLAG_BIND_REMOVE_SDT); 

    //Save the document 
    Docx4J.save(wordMLPackage, new File(OUTPUT_DOCX), Docx4J.FLAG_NONE); 
    System.out.println("Saved: " + OUTPUT_DOCX); 
} 

エラー: org.docx4j.openpackaging.exceptions.Docx4JException:CustomXmlDataStoragePartが見つかりませんでした。 ..CustomXmlDataStoragePartが見つかりませんでした!エラーを追加します。docx4jでWordをWordに追加します。

xml click here

を出たのはなぜCustomXmlDataStoragePartを見つけることができませんでしたか?それを修正するには? http://www.opendope.org

あなたの文書を設定する最も簡単な方法は、Wordアドインの一つ、どちらかhttp://www.opendope.org/downloads/authoring-friendly/setup.exe歳以上/醜いを使用することです参照してください。

+0

を参照してください。詳細については。しかし、私はあなたのtemplate.docxが間違っていると思います。どのようにそれを作成しましたか? – JasonPlutext

+0

https://msdn.microsoft.com/en-us/library/office/jj889465.aspxテンプレートを作成する方法 –

+0

実際、XMLのデータスタイルが間違っている可能性があります –

答えて

0

CustomXmlDataStoragePartSelectorはOpenDoPE仕様に応じて、コンテンツコントロールを使用して文書で動作するように意図されますhttp://www.opendope.org/downloads/authoring-advanced/setup.exe

あなたがhttps://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/model/datastorage/CustomXmlDataStoragePartSelector.javaのためにロギングをオンすることができ、さらにhttp://www.opendope.org/implementations.html

関連する問題