2017-05-30 14 views
0

Microsoft Word文書を作成するのにdocx4jを使用しています。私はまた、docにhtmlテキストを書く必要があります。以下は、私が使用しているコードですが、docファイルが生成されたとき、そのすべてが空です。POIまたはdocx4jを使用してMicrosoft Word文書にHTMLテキストを書き込む方法は?

import org.docx4j.dml.ObjectFactory; 
import org.docx4j.jaxb.Context; 
import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 
import org.docx4j.openpackaging.parts.WordprocessingML.AltChunkType; 

public class AltChunkAddOfTypeHtml { 

    static String DEST = "/home/Downloads/Sample.docx"; 

    private static org.docx4j.wml.ObjectFactory factory; 

    public static void main(String[] args) throws Exception { 

     WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage 
       .createPackage(); 

     String html = "<html>पासवर्ड</html>"; 

     wordMLPackage.getMainDocumentPart().addAltChunk(AltChunkType.Html, 
       html.getBytes()); 

     wordMLPackage.save(new java.io.File(DEST)); 
    } 

} 

EDIT 1:以下

正常に動作するコードです。問題は、フォントを適切に設定することだけです。 HTMLのフォントを以下のように設定すると、

<table border="1px" width="70%" style="font-size: 9px;"> 

与えられたフォントサイズは英語のテキストのみに適用されます。 Marathiのテキストには適用されません。

答えて

0

AltChunkは、サポート用に消費アプリケーションに依存しています(消費アプリケーションがHTMLペイロードを変換します)。

出力docxはMicrosoft Word(2010年テスト済み)で動作します。

あなたがそれを保存する前にhttps://github.com/plutext/docx4j-ImportXHTML/tree/master/src/samples/java/org/docx4j/samples

UPDATE参照、消費するアプリケーションの広い範囲でコンテンツを見ることができるように、XHTMLは、本物のdocxコンテンツに変換したい場合 -

フォントが処理されているフォントをhttps://github.com/plutext/docx4j-ImportXHTML/blob/master/src/main/java/org/docx4j/convert/in/xhtml/FontHandler.java#L58

MarathiがRFontsオブジェクトの他の属性の1つに依存している可能性があります。ご覧になるには、動作するdocxを見る必要があります。 https://github.com/plutext/docx4j-ImportXHTML/blob/master/src/main/java/org/docx4j/convert/in/xhtml/FontHandler.java#L54を使用して、適切なフォントマッピングを挿入できます。

+0

上記のサンプルのどれが問題に対処していますか?私は理解できませんでした。 – ashishjmeshram

+0

それらのいずれか.... – JasonPlutext

+0

それは働いた。しかし、私のHTMLテキストは、Marathiのテキストと英語のテキストがほとんどありません。どちらもフォントサイズが9pxです。 docxが生成されるとき、フォントサイズは英語テキストに適用されますが、Marathiテキストには適用されません。何か案は? – ashishjmeshram

関連する問題