搜索 提交
  • 注意事项

    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
  • 关于word图片与html图片相互转换

    HTML标签中的图片一般是一个URL,而WORD中的图片是一个压缩的WORD文档中的本地文件 所以在HTML与WORD相互转换时会涉及到图片的上传与下载 HTML转换成WORD时,需要根据IMG.SRC中图片URL下载到本地,再压缩到WORD文档中,所以需要提供一个Downloader实现downl
  • ${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;
  • word表格合并单元格时与html表格合并单元格是的区别

    word表格合并单元格时与html表格合并单元格是的区别 合并列时都一样,被合并的节点被删除,如第1个单元格中合并2列,则第2个单元格会被删除 合并行时有所不同,在html中被合并的单元格同样会被删除 但在word中被上一行合并的单元格依然存在,只是添加了一个标签(vMerge)来标记
  • 关于尺寸单位(长、宽、高、字号)

    关于尺寸单位(长、宽、高、字号) 默认单位px setWidth(10);相当于setWidth("10px"); 可以修改默认单位 setWidthUnit("cm"); setWidth(10);相当于setWidth("10cm");
第一页 上一页 下一页 最后页