• FreeMark模板方式生成doc文档标签问题汇总


    1、标签含义

    <w:tbl> 表格开始标志
      <w:tblPr>表格属性
        <w:tblW w:w=“0” w:type=“auto”/>这个type=还可以使用“pct”根据窗口调整
        <w:jc w:val=“center”/>表格居中
        <w:tblBorders>边框线
          <w:top w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/> 上边线
          <w:bottom w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/>下边线
          <w:insideH w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/>横线       <w:insideV w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/>竖线
          <w:left w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/> 左边线
          <w:right w:val=“single” w:sz=“4” wx:bdrwidth=“10” w:space=“0” w:color=“auto”/>右边线
        </w:tblBorders>边框线属性结束
      </w:tblPr>表格属性结束

    <w:tr >表格加一行
    <w:trPr>行属性开始
      </w:trPr>行属性结束
      <w:tc> 表格加一列
        <w:tcPr> 单元格属性,由X行Y列决定在这一行中新加的一列就是一个单元格
           <w:tcW w:w=“2490” w:type=“dxa” /> 单元格宽
           <w:gridSpan w:val="2"/> //设置当前位置跨两列合并
        </w:tcPr>
        <w:p >单元格中加一段落
          <w:pPr>段落属性
            <w:jc w:val=“center”/>居中
          </w:pPr>
          <w:r>段落中文字行开始
             <w:t>内容</w:t>
          </w:r>段落中文字行结束,如果要换行可重复       
        </w:p>
      </w:tc>完成一个单元格

      <w:tc> 新单元格,不指定单元格属性,则默认居左。
        <w:p >
          <w:r>
            <w:t>第二列</w:t>
          </w:r>
        </w:p>
      </w:tc>  
    </w:tr>第一行第二列完成
    </w:tbl>表格结束

    2、注意:

    (1)、表格行高自动

    <w:tr wsp:rsidR="001E0194" wsp:rsidTr="001E0194">
                   <w:trPr>
                       <w:trHeight w:h-rule="exact" w:val="340"/>  // 该标签是设置表格行高的, 去掉之后会随着表格内容长度而自适应高度
                       <w:jc w:val="center"/>
                    </w:trPr>  
    </w:tr>
    

    (2)、 <w:p>标签会独占一行

    (3)、<w:tc>标签的子标签中一定要有一个<w:p>标签,要不然生成的doc文档没法打开,报错为: <p>元素必须位于</tc>元素之前

    (4)、设置表格内边距office2016版设置为0.1cm. 不固定行高时,字会挨着内行

    <w:tblCellMar>
            <w:top w:w="57" w:type="dxa"/>
            <w:bottom w:w="57" w:type="dxa"/>
    </w:tblCellMar>
    

    (5)、设置段落行边距

    <w:p wsp:rsidR="001E0194" wsp:rsidRDefault="001E0194" wsp:rsidP="001E0194">
                <w:pPr>
                    <w:pStyle w:val="1"/>
                    <w:rPr>
                        <wx:font wx:val="宋体"/>
                    </w:rPr>
                    <w:spacing w:before="0" w:after="0" w:line="360" w:line-rule="auto"/> //设置1.5倍行间距
                </w:pPr>
                <aml:annotation aml:id="0" w:type="Word.Bookmark.Start" w:name="_Toc513704101"/>
                <w:r>
                    <w:rPr>
                        <w:rFonts w:hint="fareast"/>
                        <wx:font wx:val="宋体"/>
                    </w:rPr>
                </w:r>
                <aml:annotation aml:id="0" w:type="Word.Bookmark.End"/>
      </w:p>

    (6)、列合并

    <w:tcPr>
                  <w:tcW w:w="6294" w:type="dxa"/>
                  <w:gridSpan w:val="2"/> //设置所在行的1, 2列合并
    </w:tcPr>
    

    (7)、设置居中显示

    <w:jc w:val="center"/> //居中显示代码
    

    (8)、换页显示

    <w:br w:type="page"/>
    

    (9)、合并单元格

    <w:vmerge /> 或者<w:vmerge w:val="restart"/>
    

    (10)、图片《制作模板时需提前在指定位置放一张图片进行占位》将图片转成 base64 编码  然后将base64  加载到模板文件中

    <w:r>
           <w:pict> 
                //注意 binData 标签之间不可有空格 
           <w:binData w:name="wordml://02000002.jpg" xml:space="preserve">${sign2}</w:binData> // 可在 style 设置图片的大小
           <v:shape id="_x0000_i1022" type="#_x0000_t75" style="175.8pt;height:76.2pt;visibility:visible;mso-wrap-style:square"> <v:imagedata src="wordml://02000002.jpg" o:title="953631bb5aac42c88b33f688913220e2"/> </v:shape> </w:pict> </w:r>

    (11)、特殊字符处理

    导出word 是,如果模板中含有 < 、>、&,,那么导出的word  无法打开  

    转义字符对应的特殊符号:
    &lt; 对应< ,  &gt; 对应> ,  &amp;对应&
    

      

     参考:https://blog.csdn.net/qq_34091758/article/details/81505042

  • 相关阅读:
    网页对ipad iphone 的样式支持
    Url Properties of SPSite and SPWeb
    vs 2010 中添加 代码模板,动态生成创建时间,创建作者等信息
    明确工作目标,提升工作效率的利器Momentum插件
    与父亲相处的无奈
    VS2012一打开就停止工作的解决方法
    关于SQL Server 中连接查询Join的几种常见用法
    CSS零基础学习笔记.
    SQL Server2014,附加数据库失败,错误为:5120的解决方法
    C#Abstract抽象类的语法
  • 原文地址:https://www.cnblogs.com/wongzzh/p/15137399.html
Copyright © 2020-2023  润新知