提问人:dcrall 提问时间:7/17/2023 更新时间:7/17/2023 访问量:100
docx4j-ImportXHTML 使用计算出的 CSS 字体覆盖样式的字体详细信息
docx4j-ImportXHTML overrides style's font details with calculated CSS font
问:
我正在使用 docx4j-ImportXHTML 将 xhtml 转换为 docx 文件。我的文档标题(即 、 等)正在映射到 Word 文档中的样式。但是,样式的字体详细信息将被计算的 CSS 字体属性覆盖。如果不存在显式 CSS,则我会看到 中定义的字体属性。h1
h2
docx4j.properties
- docx4j-JAXB-参考Impl:11.4.9
- docx4j-导入XHTML:11.4.8
- 我有一个参考 docx 文件,我从中将样式复制到我生成的文件中。
- 我正在使用setting属性。
docx4j-ImportXHTML
docx4j-ImportXHTML.Element.Heading.MapToStyle=true
- 我正在使用格式化选项来自定义行为。
XHTMLImporterImpl
docx4j-ImportXHTML.fonts.default.serif=Roboto
docx4j-ImportXHTML.fonts.default.sans-serif=Roboto
docx4j-ImportXHTML.fonts.default.monospace=Courier New
docx4j-ImportXHTML.Element.Heading.MapToStyle=true
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
wordMLPackage.getMainDocumentPart()
.getStyleDefinitionsPart()
.setJaxbElement(documentStyles);
XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
xHTMLImporter.setParagraphFormatting(FormattingOption.CLASS_TO_STYLE_ONLY);
//xHTMLImporter.setRunFormatting(FormattingOption.CLASS_TO_STYLE_ONLY);
List<Object> parts = xHTMLImporter.convert(html, null);
wordMLPackage.getMainDocumentPart().getContent().addAll(parts);
特别是对于标题,我希望 Word 样式决定外观(即字体、字体大小、颜色和间距)。以下是我的标题 3 样式的定义:
以下是它的应用方式:
我的文档目标元素中没有 CSS。我相信字体系列是由默认样式表决定的,字体大小是由默认样式表决定的。h3
docx4j-ImportXHTML
我的标题 3 样式基于 Normal 段落样式,感觉就像计算出的 CSS 属性被应用于段落内运行的文本。
是否可以将 docx4j-ImportXHTML 配置为仅使用 Word 文档样式?我不确定我是否遗漏了一些细节,或者我是否违背了图书馆的精神。
答: 暂无答案
评论
setParagraphFormatting()
setRunFormatting()