HTML生成word文档

本文介绍了如何不使用poi、Jacob、freemaker等框架,而是通过手动拼接HTML字符串的方式生成Word文档。首先展示了一个用于生成doc文档的HTML头部,包含必要的命名空间和元信息。接着,提到了生成doc文档的尾部。生成Word文档时,只需将HTML内容插入到这个头和尾部之间,组合成一个完整的字符串,然后通过输出流输出为.doc文件。
摘要由CSDN通过智能技术生成

将HTML生成为word文档,通常想到的都是poi、Jacob、freemaker这些框架,但是,我最近在项目中由于业务需要,要将HTML生成为word,最先我想到的也是通过POI这些来生成,但后面我发现,其实不通过这些工具也可以生成word文件,直接自己手动拼接字符串也可以实现word文件的生成。


这是用来生成doc文档的头:


<html xmlns:v="urn:schemas-microsoft-com:vml"
      xmlns:o="urn:schemas-microsoft-com:office:office"
      xmlns:w="urn:schemas-microsoft-com:office:word"
      xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
      xmlns="http://www.w3.org/TR/REC-html40">


<head>
    <meta http-equiv=Content-Type content="text/html; charset=unicode">
    <meta name=ProgId content=Word.Document>
    <meta name=Generator content="Microsoft Word 15">
    <meta name=Originator content="Microsoft Word 15">
    <link rel=File-List href="html_to_word.files/filelist.xml">
    <link rel=Edit-Time-Data href="html_to_word.files/editdata.mso">
    <!--[if !mso]>
    <style>
        v\:* {behavior:url(#default#VML);}
        o\:* {behavior:url(#default#VML);}
        w\:* {behavior:url(#default#VML);}
        .shape {behavior:url(#default#VML);}
    </style>
    <![endif]-->
    <title>导出Word</title>
    <!--[if gte mso 9]><xml>
    <o:DocumentProperties>
        <o:Author>Administrator</o:Author>
        <o:LastAuthor>Administrator</o:LastAuthor>
        <o:Revision>5</o:Revision>
        <o:TotalTime>1</o:TotalTime>
        <o:Created>2017-08-15T11:21:00Z</o:Created>
        <o:LastSaved>2017-08-15T11:29:00Z</o:LastSaved>
        <o:Pages>1</o:Pages>
        <o:Words>178</o:Words>
        <o:Characters>206</o:Characters>
        <o:Lines>1</o:Lines>
        <o:Paragraphs>1</o:Paragraphs>
        <o:CharactersWithSpaces>383</o:CharactersWithSpaces>
        <o:Version>16.00</o:Version>
    </o:DocumentProperties>
    <o:OfficeDocumentSettings>
        <o:AllowPNG/>
    </o:OfficeDocumentSettings>
</xml><![endif]-->
    <link rel=themeData href="html_to_word.files/themedata.thmx">
    <link rel=colorSchemeMapping href="html_to_word.files/colorschememapping.xml">
    <!--[if gte mso 9]><xml>
    <w:WordDocument>
        <w:TrackMoves/>
        <w:TrackFormatting/>
        <w:ValidateAgainstSchemas/>
        <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
        <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
        <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
        <w:DoNotPromoteQF/>
        <w:LidThemeOther>EN-US</w:LidThemeOther>
        <w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
        <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
        <w:Compatibility>
<w:ULTrailSpace/>
            <w:BreakWrappedTables/>
            <w:SplitPgBreakAndParaMark/>
            <w:UseFELayout/>
        </w:Compatibility>
        <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
        <m:mathPr>
            <m:mathFont m:val="Cambria Math"/>
            <m:brkBin m:val="before"/>
            <m:brkBinSub m:val="&#45;-"/>
            <m:smallFrac m:val="off"/>
            <m:dispDef/>
            <m:lMargin m:val="0"/>
            <m:rMargin m:val="0"/>
            <m:defJc m:val="centerGroup"/>
            <m:wrapIndent m:val="1440"/>
            <m:intLim m:val="subSup"/>
            <m:naryLim m:val="undOvr"/>
        </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
    <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
                    DefSemiHidden="false" DefQFormat="false" DefPriority="99"
                    LatentStyleCount="371">
        <w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
        <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
        <w:LsdException Locked="false" Priority="9" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 1"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 2"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 3"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 4"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 5"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 6"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 7"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 8"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index 9"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 1"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 2"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 3"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 4"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 5"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 6"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 7"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 8"/>
        <w:LsdException Locked="false" Priority="39" SemiHidden="true"
                        UnhideWhenUsed="true" Name="toc 9"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="Normal Indent"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="footnote text"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="annotation text"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="header"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="footer"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="index heading"/>
        <w:LsdException Locked="false" Priority="35" SemiHidden="true"
                        UnhideWhenUsed="true" QFormat="true" Name="caption"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="table of figures"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="envelope address"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="envelope return"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="footnote reference"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="annotation reference"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="line number"/>
        <w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
                        Name="page number"/>
        <w:LsdException Locked&#

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值