Docx4j表列边框在使用XhtmlImporterImpl之间有空格

时间:2017-03-06 15:20:59

标签: java xhtml docx docx4j

我尝试使用docx4j将HTML转换为docx。我将表的cellspacingcellpadding属性设置为0.但是在我打开生成的文档之后,每个单元格之间仍有单元格间距。我使用XHTMLImporterImpl生成文档。以下是我使用的代码:

String border = "border: 1px solid black;";
String testString = "<table cellspacing='0' cellpadding='0' style='" + border + "'>"
                     + "<tr>"
                     + "<td style='border-spacing:0;padding:0;background-color:red;" + border + "'>This is test row1 col1</td>"
                     + "<td style='border-spacing:0;padding:0;background-color:red;" + border + "'>This is test row1 col2</td>"
                     + "</tr>"
                     + "<tr>"
                     + "<td style='border-spacing:0;padding:0;background-color:red;" + border + "'>This is row2 col1</td>"
                     + "<td style='border-spacing:0;padding:0;background-color:red;'>This is row2 col2</td>"
                     + "</tr>"
                     + "</table>";

generateWord(testString);

generateWord()方法如下:

public static void generateWord(String html) throws Docx4JException
{
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
    XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
    wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporter.convert( html, null) );
    wordMLPackage.save(new java.io.File(System.getProperty("user.dir") + "/output.docx"));
}

结果如下:

Image of document generated using XHTMLImporterImpl

每个单元格之间都有空格。

旁注:如果我使用CTAltChunk,则每个单元格之间没有间距。但CTAltChunk无法处理Base64图片。我可以将<img src=''>CTAltChunk一起使用,但它会链接文档中的图像源。删除源图像后,图像将从文档中消失。这就是我需要使用Base64图片的原因。

0 个答案:

没有答案