Apache POI docx:HTML 作为 altChunk
Apache POI docx: HTML as an altChunk
早上好
我想使用 Apache POI 将 HTML 作为 altChunk 添加到 DOCX 文件中。为此,我遵循了这个 Whosebug 答案
除了我的语言(意大利语)的特殊字符出现问题外,一切正常。
我的情况如下:我有一个外部 html 文件。要导入我使用以下代码
byte[] inputBytes = Files.readAllBytes(Paths.get("testo.html"));
String xhtml = new String(inputBytes, StandardCharsets.UTF_8);
然后我使用 Whosebug 答案中提供的代码生成 docx。
如果我将 .docx 解压缩到“word”文件夹下,我就会正确地得到文件“chunk1.html”。
如果我打开它,则会正确报告特殊字符,例如
L'attività in oggetto è:
但是当我在 Word 中打开文档时,我看到了这个
L'attività in oggetto è:
是否有我遗漏的相同 Microsoft 配置?
创建chunk的时候需要指定字符集吗?
Microsoft
似乎将 ANSI
作为 Word
中 HTML
块的默认字符编码。这很烦人,因为整个其他世界现在都将 Unicode (UTF-8
) 作为默认值。
所以我们需要明确地为 HTML
设置字符集。在块的模板中 HTML
做:
...
private MyXWPFHtmlDocument(PackagePart part, String id) throws Exception {
super(part);
this.html = "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"><style></style><title>HTML import</title></head><body></body>";
this.id = id;
}
...
我会推荐这个而不是对 HTML
块使用 ANSI
编码。
我也在 中将其编辑到我的答案中。
早上好
我想使用 Apache POI 将 HTML 作为 altChunk 添加到 DOCX 文件中。为此,我遵循了这个 Whosebug 答案
除了我的语言(意大利语)的特殊字符出现问题外,一切正常。
我的情况如下:我有一个外部 html 文件。要导入我使用以下代码
byte[] inputBytes = Files.readAllBytes(Paths.get("testo.html"));
String xhtml = new String(inputBytes, StandardCharsets.UTF_8);
然后我使用 Whosebug 答案中提供的代码生成 docx。
如果我将 .docx 解压缩到“word”文件夹下,我就会正确地得到文件“chunk1.html”。
如果我打开它,则会正确报告特殊字符,例如
L'attività in oggetto è:
但是当我在 Word 中打开文档时,我看到了这个
L'attività in oggetto è:
是否有我遗漏的相同 Microsoft 配置?
创建chunk的时候需要指定字符集吗?
Microsoft
似乎将 ANSI
作为 Word
中 HTML
块的默认字符编码。这很烦人,因为整个其他世界现在都将 Unicode (UTF-8
) 作为默认值。
所以我们需要明确地为 HTML
设置字符集。在块的模板中 HTML
做:
...
private MyXWPFHtmlDocument(PackagePart part, String id) throws Exception {
super(part);
this.html = "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"><style></style><title>HTML import</title></head><body></body>";
this.id = id;
}
...
我会推荐这个而不是对 HTML
块使用 ANSI
编码。
我也在