搜索 提交
  • 注意事项

    Anyline Office要实现的是精确控制每个html标签转换成word标签,主要用来处理表格,书签
    应用场景如:资质证书、检测报告等

    html标准与word标准并非完全兼容,如word中并不支持段落(html.div)的多层嵌套;

    Anyline Office并不能把任何的html都完整的转换成word,不支持javasript脚本,建议在生成数据报表时使用。


    如果是要把整个HTML页面或富文本编辑器中的内容转成word,应该是直接把HTML源码压缩到word文档中。word本身支持HTML解析。
    如POI里这样实现,执行后是生成一个doc文件,生成的其实是一个压缩文件,压缩包内只有一个html文件,可以用word打开另存为docx文件,另存的过程就是把html标签转成word标签的过程,生成的docx就是下个结构完整word文档了

                
    
    org.apache.poi.poifs.filesystem.POIFSFileSystem poifs = new POIFSFileSystem();
    org.apache.poi.poifs.filesystem.DirectoryEntry directory = poifs.getRoot();
    OutputStream out = new FileOutputStream("D:\\word.doc");
    directory.createDocument("WordDocument", new FileInputStream("D:\\index.html"));
    poifs.writeFilesystem(out);
    
    //如果是一段html可以这样
    byte b[] = html.getBytes();
    ByteArrayInputStream bais = new ByteArrayInputStream(b);
    POIFSFileSystem poifs = new POIFSFileSystem();
    DirectoryEntry directory = poifs.getRoot();
    DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
    poifs.writeFilesystem(out);
    关闭out
  • 关于占位符被拆分的问题

    如果是手工输入的话,占位位经常会被自动拆分到多个标签内,如${max}会被自动拆分成三部分 1.$ 2.max 3.}
  • 生成的docx中的换行符在浏览器插件中无效的问题

    通过HTML转换成word时 通过情况下可以通过HTML标签<br/>生成word换行符<w:br/> 但是有些浏览器中预览时可能没有正常换行,是因为有些插件并一定能正常解析<w:br/> 可以换成 用<DIV>标签生成<w:p>标签
  • 关于word图片与html图片相互转换

    HTML标签中的图片一般是一个URL,而WORD中的图片是一个压缩的WORD文档中的本地文件 所以在HTML与WORD相互转换时会涉及到图片的上传与下载 HTML转换成WORD时,需要根据IMG.SRC中图片URL下载到本地,再压缩到WORD文档中,所以需要提供一个Downloader实现downl
  • 字体样式无效的问题

    <w:r> <w:t>中文ABC123</w:t> <w:rPr> <w:bdr/> <w:sz w:val="21"/> <w:rFonts w:ascii="Times New Roman" w:eas
  • ${key}尽量不要出现在书签中

    ${key}尽量不要出现在书签中,因为书签在执行替换时会把${key}替换掉
  • html标签要通过xml标准验证

    html标签要通过xml标准验证,Anyline Office使用dom4j来解析html,并不像浏览器容错性那么强,特别是没有结束标签的片段会导致解析失败。
  • 如果从文件中读取HTML片段,文件格式尽量用UTF-8不要用UTF-8+BOM

    如果从文件中读取HTML片段,文件格式尽量用UTF-8不要用UTF-8+BOM,否则有可能因为trim()失效导致未知的异常
  • div span只适配了inline,block,inline-block

    当前版本中(8.5.1)div span标签的style.display只适配了inline,block,inline-block,没有处理其他的值。
  • text两侧的空格、回车不占空间

    text两侧的空格、回车不占空间,在执行解析时会清除两侧的不可见字符,但中间的不会清除,空格在word中会表现出来,这与html预览的效果会有差异。
  • table的每一行要保持td数量一致(包含colspan,rowspan的值)

    table的每一行要保持td数量一致(包含colspan,rowspan的值),colspan/rowspan不要算错,如果最终计算的列数量不一致会导致table解析过程中数组越界。 虽然word中支持table每行tc的数量不同,但当前版本(8.5.1)中还没有实现。
第一页 上一页 下一页 最后页