• 注意事项

    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("doc", new FileInputStream("D:\\index.html"));

  • 关于尺寸单位(长、宽、高、字号)

    关于尺寸单位(长、宽、高、字号) 默认单位px setWidth(10);相当于setWidth("10px"); 可以修改默认单位 setWidthUnit("cm"); setWidth(10);相当于setWidth("10cm");
  • word表格合并单元格时与html表格合并单元格是的区别

    word表格合并单元格时与html表格合并单元格是的区别 合并列时都一样,被合并的节点被删除,如第1个单元格中合并2列,则第2个单元格会被删除 合并行时有所不同,在html中被合并的单元格同样会被删除 但在word中被上一行合并的单元格依然存在,只是添加了一个标签(vMerge)来标记
  • ${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)中还没有实现。
  • border

    Anyline Office对border的解析并没有浏览器那样完整,只解析了以下一种顺序border:5px solid red;需要按顺序的三个值。 当然也可以分开写 border-color:red; border-top-color:red; border-color:red blue;
第一页 上一页 下一页 最后页