Docx4j将html转成word时,br标签为软回车的问题修改

docx4j版本:3.0.1

修改jar包:docx4j-ImportXHTML

maven配置为:

具体代码位置:\org\docx4j\convert\in\xhtml\XHTMLImporterImpl.java 中 processInlineBoxContent方法

代码修改前:

代码修改后:

	private void processInlineBoxContent(InlineBox inlineBox, Styleable s,
			Map<String, CSSValue> cssMap) {

		if (inlineBox.getTextNode()==null) {

            if (s.getElement().getNodeName().equals("br") ) {

//                R run = Context.getWmlObjectFactory().createR();
//                getListForRun().getContent().add(run);
//           		run.getContent().add(Context.getWmlObjectFactory().createBr());
            	Element ele = s.getElement();
		    	if(null != ele){
		    		Attr attrNode = ele.getAttributeNode("style");
		        	if (attrNode != null && attrNode.getValue().contains("page-break-after: always")) {
		        		Br br = Context.getWmlObjectFactory().createBr();
		        		P p = Context.getWmlObjectFactory().createP();
		        		// Create object for r
		        		R r = Context.getWmlObjectFactory().createR();
		        		p.getContent().add(r);
		        	    br.setType(STBrType.PAGE);
		        	    r.getContent().add(br);
		        	    this.contentContextStack.peek().getContent().add(p);
		        	}
//		        	wordMLPackage.getMainDocumentPart().addObject(p);
		    	}

            } else {
            	log.debug("InlineBox has no TextNode, so skipping" );

            	// TODO .. a span in a span or a?
            	// need to traverse, how?

            }

        } else  {
            log.debug( inlineBox.getTextNode().getTextContent() );  // don‘t use .getText()

            String theText = inlineBox.getTextNode().getTextContent();
            log.debug("Processing " + theText);

            paraStillEmpty = false;   

            String cssClass = getClassAttribute(s.getElement());
        	if (cssClass!=null) {
        	 	cssClass=cssClass.trim();
        	}
            addRun(cssClass, cssMap, theText);

//                                    else {
//                                    	// Get it from the parent element eg p
//                        	            //Map cssMap = styleReference.getCascadedPropertiesMap(e);
//                        	            run.setRPr(
//                        	            		addRunProperties( cssMap ));
//                                    }
        }
	}

  

时间: 2024-08-25 14:03:22

Docx4j将html转成word时,br标签为软回车的问题修改的相关文章

简单快速有效地将PDF文件转换成Word

写论文的时候需要大段地引用知网下载下来的前人论文内容,但是数据库的论文下载下来大部分几乎都是pdf格式的,所以这成了让人很头疼的事情,后来经过方法的寻找,我发现了一款很有用的转换器软件,解决了我的一大烦恼. 这款软件名字叫做迅捷pdf转换器,是一款最快捷的PDF文件转换到Word文档工具,它可以帮助用户生成一个与原PDF文件一模一样的Word格式文档,而这个文档完好地保留了原有排版及所有元素.如文字.图片.链接.图表.表格.样式等都可以很好的保留在Word文档中,接下来用户就可以很方便的修改或重

java将html导出成word ——增加换行 换页符号

java将html导出word增加换行符 //换页 <span lang=EN-US style='font-size:12.0pt;line-height:150%;font-family:"Times New Roman"; mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:EN-US; mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA'&

java将html导出成word(利用的poi包导出)

//导出到word public void exportWord(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { DBTool tool = null ; try { /*** 查询数据库获得数据 **/ ArrayList records = form.getRecords(); if(

将Latex tex文档转换成 word文档(上)

有时候逼不得已,必须得将自己精心排版好的latex 文档 转换成word 给别人编辑 以下提供一个方法 下载 Tex2Word 工具,地址我的网盘 安装 解压后安装,使用默认安装路径 安装过程中.点击使用安装 破解软件.依照安装包里给出方法将 C:\Program Files\tex2word C:\Program Files\Microsoft Office\OFFICE11\STARTUP\ C:\Program Files\Common Files\Microsoft Shared\TEX

通过freemarker出word的技术解决方案_通过点击一个按钮临时实现生成一个word,解决出word时中文文件名乱码问题,解决打开出word时打开的word出现问题的问题,出图片,解决动态列表

 通过freemarker制作word比较简单 步骤:制作word模板.制作方式是:将模板word保存成为xml----在xml的word模板中添加相应的标记----将xml的word文件的后缀名改成ftl文件 详细步骤如下: 模板制作(将要动态显示的数据打上标记,这个标记是freemarker中的EL标记,要注意的是,要控制值为空的情况,下面${(site.wzmc)?default("")}标识当网站名称为空的时候显示空值,如果这里如果不做控制,在实际项目中会显示错误!) 另外

如何把文档从pdf格式转换成word格式

在求职时,你会不会为简历的格式而犯愁,Word文档还是PDF格式呢?Word好编辑,PDF好阅读.一般统一都是Word多些吧,但是HR也会经常收到PDF格式的简历.PDF 是一个很有价值的工具,求职者是否 care 这份机会,是否珍视他自己的专业经历,很大一部分会反映到排版的认真程度.有些HR还会比较欣赏愿意花时间把Word转成PDF格式的候选人,因为这样做会让简历阅读的感觉比较好.但是很多公司有自己的招聘系统Word一般支持附件解析,可如果是PDF格式,那么把简历录入系统基本就需要手动完成了,

将pdf文档内容转换成word格式

很多人在生活工作中,会遇到PDF这样的文件.PDF格式的文件虽然在使用上比传统的办公文件更易于阅读,但是由于它的不可编辑性,让我们在处理它时也是浪费了不少精力.如果我们要想编辑或者提取里面的一些有用文字信息该怎么办呢?不妨从把PDF转换成Word开始. 一般情况下,我们面对少量的PDF文字可以手动输入成word,但是面对大量的输入任务时,就不得不借助软件的帮助了.这里给大家推荐一款好用的捷迅pdf转换成word转换器. 下载安装软件后,打开软件后,选择左侧转换模式栏中的“文件转Word”,新版本

ABBYY将JPEG文件转换成Word文档的方法

日常工作中处理JPEG格式的图像文件时,有时需要转换成Word文档进行编辑,市场上应用而生了很多转换工具,相信不少人听说过OCR(光学字符识别)软件,可以用来转换图像文件,而在OCR软件中, ABBYY FineReader 12已被越来越多的企业和个人熟知,在日常工作中的应用范围也越来月广泛,本文主要教大家使用ABBYY FineReader 12将JPEG文件转换成Word文档. ABBYY FineReader 12是一款OCR图文识别软件,可快速方便地将扫描纸质文档.PDF文件和数码相机

怎样可以把excel表格转换成word文档

在处理一些文档时,有时会遇到需要将excel表格内容全部放到word文档中,通常只是需要excel的部分数据内容时,直接通过复制,然后粘贴到word文档中即可,但是如果需要将excel表格所以内容都转换成word,那么复制操作就比较麻烦了,那么怎样可以快速将excel表格转换成word文档呢? 通过文档的转换工具,可以将excel格式直接转为word文档,而且是将excel工作簿中的所有表格同时进行转换. 首先在转换器中选择文件转word的转换类型,通过这个选项可以把我们常见的excel,ppt