0
DocXをHtmlに変換してDocXに戻しています。最終的なDocxは正常に生成されます。しかし、変換によって、最終的な文書の表の書式設定が歪曲していました。最終的なdocxで生成されたテーブルのセル幅は長くなり、テーブルはドキュメントの境界から外れます。DOCX4J:HTMLをDocxテーブル形式に変換する
- docxの元のテーブルの列幅は8.15cm(表幅、16.30cm)です。
- htmlに変換されたテーブルの幅は6.42インチです。
- docxに変換された表の列の幅は10.76cmです(表 幅、21.52cm)。
変換後も同じ形式を維持する方法はありますか? アドバイスをいただければ幸いです。以下は
は私のコードです:private void convertHtmlToDocx() throws IOException, JAXBException, Docx4JException{
//convert back to docx
String inputfilepath = System.getProperty("user.dir") + "myPath";
String baseURL = "file:///"+System.getProperty("user.dir")+"path";
String stringFromFile = FileUtils.readFileToString(new File(inputfilepath), "UTF-8");
String unescaped = stringFromFile;
if (stringFromFile.contains("</")) {
unescaped = StringEscapeUtils.unescapeHtml(stringFromFile);
}
System.out.println("Unescaped: " + unescaped);
// Setup font mapping
RFonts rfonts = Context.getWmlObjectFactory().createRFonts();
rfonts.setAscii("Century Gothic");
XHTMLImporterImpl.addFontMapping("Century Gothic", rfonts);
// Create an empty docx package
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();
wordMLPackage.getMainDocumentPart().addTargetPart(ndp);
ndp.unmarshalDefaultNumbering();
// Convert the XHTML, and add it into the empty docx we made
XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
XHTMLImporter.setTableFormatting(FormattingOption.IGNORE_CLASS);
XHTMLImporter.setParagraphFormatting(FormattingOption.IGNORE_CLASS);
XHTMLImporter.setHyperlinkStyle("Hyperlink");
wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporter.convert(unescaped, baseURL));
wordMLPackage.save(new java.io.File(System.getProperty("user.dir") + "myPath"));
}
はい。それはまさに私の使用例です。はい、テーブルの幅は固定されています。私はマニュアルを見て、私はいくつかの質問があります。 もし私がこのライブラリを使用するなら、私はまだdocxをhtmlに変換してdocxに戻す必要がありますか? 私はフロントエンドとしてprimefacesを使用しており、CKEditorを持っています。私はprimefacesが提供するものを使用するのですか、それともインストールする必要がありますか? – user2533611
プロジェクトhttps://github.com/plutext/docx-html-editorが変換を行います。それをスタンドアロンで実行してみて、それを作業したらプロジェクトに統合してください。ページには、CKeditor v3.6.6.1が使用されているので、primefaceによって提供されているものが近いと動作するかもしれません。 – JasonPlutext