当我使用POI转换HTML 2 Word时,我能够生成一个具有HTML中使用的所有样式和格式的新。doc,但问题是无法在新创建的。doc文档中添加页眉和页脚。POI不支持@page样式的CSS吗?还有如何添加页眉和页脚到新生成的。doc文档。
下面的代码:
public void convertHtmltoWord(String html, OutputStream outputStream) throws IOException {
POIFSFileSystem poifs = new POIFSFileSystem();
DirectoryEntry directory = poifs.getRoot();
try {
directory.createDocument("WordDocument", getInputStream(html));
poifs.writeFilesystem(outputStream);
} finally {
outputStream.close();
poifs.close();
}
}
public static InputStream getInputStream(String inputData) {
InputStream targetStream = IOUtils.toInputStream(inputData);
return targetStream;
}
注意:转换后的。doc将只给出。doc的BODY部分,而不是Header和Footer。页脚的页码没有出现
您正在使用的代码是而不是HTML
到Word
的转换
您的代码只创建一个POIFSFileSystem
,其中一个DirectoryEntry
包含HTML
。Microsoft Word
会解释HTML
并显示在文档主体中,但文件是而不是一个真正的二进制*.doc
文件。
当你在Word
中打开一些东西然后保存时,你可以看到这一点。它将被保存为HTML
,并创建一个额外的目录[Filename]-Files
。这是必需的,因为HTML
默认情况下不提供嵌入。所以这个目录包含了所有不能嵌入的元素。这是图片的例子,但也有额外的HTML
文件包含头和/或页脚文本。
所以使用你的方法是不可能添加页眉或页脚到HTML
。它只能将HTML
放入文档主体中。它甚至没有创建一个真正的MIcvrosoft Word
文件,而只是一个HTML
文件,因为它的假文件名*.doc
而被强加给Microsoft Word
。