0
은 HTML 콘텐츠와 함께 필드 "테스트"를 병합 HTML 콘텐츠와 병합 필드 :Docx4j은 - 교체 말씀은 제가 말씀을 대체하기 위해 노력하고
String myText = "<html><body><h1>Hello</h1></body></html>";
Docx4j를 사용하여.
결과, 나는 HTML로 해석되지 않고String myText = "<html><body><h1>Hello</h1></body></html>"; try { WordprocessingMLPackage docxOut = WordprocessingMLPackage.load(new java.io.File("/tmp/template.docx")); Map<DataFieldName, String> data = new HashMap<>(); data.put(new DataFieldName("test"), myText); org.docx4j.model.fields.merge.MailMerger.performMerge(docxOut, data, true); docxOut.save(new java.io.File("/tmp/newTemplate.docx")); } catch (Docx4JException e) { LOGGER.error(e.getMessage()); }
"<html><body><h1>Hello</h1></body></html>"
로 대체 내 병합 필드 출력 (newTemplate.docx)가 있습니다. 나는 다음을 추가하려고 시도했다 :docxOut.getContentTypeManager(). addDefaultContentType ("html", "text/html");
그러나 여전히 작동하지 않았습니다. Word 병합 필드를 바꾸는 동안 HTML을 해석하는 것이 Docx4j를 사용하거나 뭔가 빠졌는지 잘 모르겠다.
도움이 될 것입니다.
Docx4j만으로 html을 삽입 할 수 없다는 뜻입니까? –
MERGEFIELD가 아닌 XHTML의 자동 변환을 원할 경우 docx4j를 사용하여 콘텐츠 제어 데이터 바인딩을 수행해야 함을 의미합니다. 또는 ImportXHTML 코드를 사용하여 XHTML을 수동으로 변환 할 수 있습니다. – JasonPlutext
나는 그것도 생각했지만 xhtmlImporterImpl.convert (htmlContent, null))는 Map을 사용해야 할 병합 필드를 대체하는 동안