我有一个应用程序,可以使用DocX4J将html文件转换为DocX。我对特殊字符有问题,比如ç、á、é、í、ã等。我在html文件中的文本字体是Arial,但当我将它们转换为DocX时,前面提到的特殊字符被设置为calibri字体。所以,在同一个单词中(例如Cláudio),我用Arial字体写“Cl”,用Calibri字体写“á”,用Arial字体写“udio”。
我看到也许我必须在w: r中设置字体属性,但是我很难看到如何对我的文本的所有运行进行转换。此外,我看不到如何在我的转换代码中做到这一点,下面列出了(带有一个示例html)。
关于如何进行这种转换和处理这些特殊字符的任何提示或建议都将是非常好的。
干杯。
public WordprocessingMLPackage export(String xhtml) {
WordprocessingMLPackage wordMLPackage = null;
try {
wordMLPackage = WordprocessingMLPackage.createPackage();
XHTMLImporter importer = new XHTMLImporterImpl(wordMLPackage);
List<Object> content = importer.convert(xhtml,null);
wordMLPackage.getMainDocumentPart().getContent().addAll(content);
}
catch (Docx4JException e) {
// ...
}
return wordMLPackage;
}
<html>
<head>
<meta charset="ISO-8859-1" />
<style type="text/css">
h1 {
page-break-before: always;
}
p, h1 {
font-family: Arial;
font-size: 12pt;
}
p {
line-height: 150%;
}
h1 {
font-weight: bold;
line-height: 130%
}
</style>
</head>
<body>
<h1>RESUMO<br /></h1>
<p>
<span>Um resumo para o relatório.</span><br />
</p>
</body>
</html>
根据JasonPlutexts给出的提示,我在DocX4J论坛(http://www.docx4java.org/forums/docx-java-f6/docx-to-html-and-back-to-docx-t1913.html)上找到了一个如何将字体映射到XHTMLImaver的示例。
现在我的代码正在工作!请参阅下面的最终版本。
public WordprocessingMLPackage export(String xhtml) {
WordprocessingMLPackage wordMLPackage = null;
try {
RFonts arialRFonts = Context.getWmlObjectFactory().createRFonts();
arialRFonts.setAscii("Arial");
arialRFonts.setHAnsi("Arial");
XHTMLImporterImpl.addFontMapping("Arial", arialRFonts);
wordMLPackage = WordprocessingMLPackage.createPackage();
XHTMLImporter importer = new XHTMLImporterImpl(wordMLPackage);
List<Object> content = importer.convert(xhtml,null);
wordMLPackage.getMainDocumentPart().getContent().addAll(content);
}
catch (Docx4JException e) {
// ...
}
return wordMLPackage;
}
问题内容: 我有一个使用DocX4J将html文件转换为DocX的应用程序。我在使用ç,á,é,í,ã等特殊字符时遇到问题。我在html文件中的文本字体是Arial,但是当我将它们转换为DocX时,前面提到的特殊字符将设置为calibri字体。因此,在同一个单词(例如Cláudio)中,我用Arial字体写了“ Cl”,用Calibri字体写了“á”字符,用Arial字体写了“ udio”。 我看
我是Docx4j的新手,我需要一些建议。 目前,我正在用Java创建一个简单的(X)超文本标记语言文档。它包含来自数据库的一些信息。创建这个html后,Docx4j使用一个非常简单的word模板创建了一个Word Docx文件。这工作罚款。 现在我必须增强这个HTML。一个数据库值包含保存RTF文件的字节数组。 目前,我将这些数据作为字符串放入HTML。 至少html文件如下所示: Docx4J现
我想在单击输入字段时触发一个处理程序,在取消选择输入字段时触发另一个处理程序(即,如果有人在字段外单击)。有没有办法做到这一点? 单击处理程序非常简单: 是否可以创建“取消单击”处理程序?
我有一个docx文件,带有Calibri Light的Heading1样式(每隔一个文本也使用Calibri Light)。转换为html后,每个文本都是Calibri Light(正确),但当我打开html文件时,Heading1样式的文本是Times New Roman。(原因:html文件内部没有为Heading1样式设置字体系列) 当我打开docx文件并检查Heading1样式的字体时,它
我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加
我将html表格从网页复制到excel,并尝试使用下面的代码,但没有结果。请就如何解决这个问题提出建议。我做了所有的实验,但没有得到正确的结果。