精华内容
下载资源
问答
  • 文档模板 不错啦
  • Word书面背景模板

    2013-11-13 16:36:35
    含义 word模板是指microsoft word中内置的包含固定格式设置和版式设置的模板文件,用于帮助用户快速生成特定类型的word文档。例如在word2010中除了通用型的空白文档模板...这些模板..
  • freemarker根据word模板生成word文档中遇到的问题 以下问题背景依据下篇文章 1、freemarkers skip assertNonNull InvalidReferenceException 描述:${varable} 表达式里面varable值为空时,会报错,这是freemarker...

    freemarker根据word模板生成word文档中遇到的问题

    以下问题背景依据下篇文章

    1、freemarkers skip assertNonNull InvalidReferenceException

    描述:${varable} 表达式里面varable值为空时,会报错,这是freemarker为了防止其他潜在的错误而定的规则,这里的解决办法是:

    ${varable!}   如果是list为空的话要加上<#if list ??></#if>

    2、生成的word打不开,报错关于word哪里多个<这种符号。。。

    描述:这是因为out输出流里设置字符集是utf-8,但是刚开始的时候我把configuration.setDefaultEncoding("UTF-8");这句话给注释掉了,想着没什么作用,于是就是这句话起的关键作用,所以说configuration.setDefaultEncoding("UTF-8");和Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));都是必不可少的。

    3.我的模板是放在项目的resource目录下,于是configuration.setClassForTemplateLoading(this.getClass(),
                    "/com/havenliu/document/template");这句代码就要修改了,百度了这个函数的怎么使用的。

    Configuration.setClassForTemplateLoading(this.getClass(),"WEB-INF/user_base")
    是根据你this.getClass()类的包路径 + WEB-INF/user_base
    假如你的this.getClass()包名为 com.freemarker 而你的ftl文件在com.freemarker.template包(也就是目录)下
    Configuration.setClassForTemplateLoading(this.getClass(),"template");

    在我这里getClass()就是D:\software\apache-tomcat-7.0.57\wtpwebapps\CDM_WEB\WEB-INF\classes











    展开全文
  • 这是一套淡蓝色信纸背景素材word模板,喜欢的人都来下载吧。该文档为淡蓝色信纸背景素材word模板.doc,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 这是一套市场专员简历暗红背景应届生Word简历模板,喜欢的人都来下载吧。该文档为市场专员简历暗红背景应届生Word简历模板,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 这是一套蓝色背景卡通风格个人简历word模板,喜欢的人都来下载吧。该文档为蓝色背景卡通风格个人简历word模板.doc,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 该简历模板是以蓝条背景装饰,由整理提供下载的个人工作简历模板,全局看起来非常不错,该模...该文档为蓝条背景个人求职简历模板word格式下载,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 这是一套灯塔灰黑色背景封面个人简历word模板,喜欢的人都来下载吧。该文档为灯塔灰黑色背景封面个人简历word模板.doc,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • nodejs动态生成word文档

    2020-07-25 14:19:43
    公司的新人文档要根据角色来生成不一样的word文档,但是里面存在大量的重复内容,每次增加删除一个内容需要更新所有的文档,维护起来太麻烦,加上本人喜欢用markdown写文档,所以我就研究了一下如何通过模板生成...

    背景

    公司的新人文档要根据角色来生成不一样的word文档,但是里面存在大量的重复内容,每次增加删除一个内容需要更新所有的文档,维护起来太麻烦,加上本人喜欢用markdown写文档,所以我就研究了一下如何通过模板生成markdown和word。

    功能如下

    • 重复内容维护在一个地方
    • 输出markdown
    • 输出word
    • 支持本地图片

    github

    假设新人文档如下

    如果是管理员的话额外显示条目3,并且有欢迎您,管理员+名称,普通员工只显示普通员工+名称

    <!-- template/welcome.md -->
    ## 注意事项1
     + 条目1
     + 条目2
     <% if (admin) { %>+ 条目3<% } %>
    
    <% if (admin) { %>
    <h2>欢迎您,管理员<%= userName %></h2>
    <% } else { %>
    <h3> 欢迎您,普通员工<%= userName %> </h3>
    <% } %>    
    
    ![图1](./static/1.png)
    

    输出到markdown

    /**
     * @description 替换模板文件中的变量
     * @param {*} tempPath 模板路劲
     * @param {*} options  需要替换的变量
     */
    function renderFile(tempPath, options) {
      return new Promise((resolve, reject) => {
        ejs.renderFile(tempPath, options, function (err, result) {
          if (err) {
            reject(err);
            return;
          }
          resolve(result);
        });
      });
    }
    
    /**
     * @param {String} outputPath 输出文件的路径
     */
    function renderOutput(outputPath, content) {
      return new Promise((resolve, reject) => {
        fs.writeFile(outputPath, content, (err) => {
          if (err) {
            reject(err);
            return;
          }
          resolve();
        });
      });
    }
    
    

    通过传入不同的options我们可以发现已经可以实现动态内容,以及区分角色

    输出到word

    markdown 到word需要2步,第一步是用marked将markdown转成html,然后使用html-docx-js将html转为docx

    /**
     *
     * @param {*} markdownPath markdown的路径
     * @param {*} outputPath 输出路径
     */
    function renderMarkdownToWord(markdownPath, outputPath) {
      return new Promise((resolve, reject) => {
        fs.readFile(markdownPath, "utf8", function (err, file) {
          if (err) {
            reject(err);
            return;
          }
          const result = getHtml(marked(file));
          renderOutput(outputPath, html2Docx.asBlob(result));
        });
      });
    }
    
    /**
     * @description 修改样式
     * @param {*} template 渲染内容
     */
    function getHtml(template) {
      return `
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
                .markdown-body {
                    box-sizing: border-box;
                    min-width: 200px;
                    max-width: 980px;
                    margin: 0 auto;
                    padding: 45px;
                }
                @media (max-width: 767px) {
                    .markdown-body {
                        padding: 15px;
                    }
                }
                {{{style}}}
            </style>
        </head>
        <body>
            <div class="markdown-body">
                ${template}
            </div>
        </body>
        </html>
    `;
    }
    

    支持本地图片

    因为我们所有的图片都在 `output/img` 下,所以生成的markdown可以直接访问,但是word的路径是错误的,于是我就想生成word的时候直接将图片转为base64
    
    /**
     *
     * @param {*} imgPath 图片路径
     */
    function renderImgToBase64(imgPath) {
      let bitmap = fs.readFileSync(imgPath);
      return (
        "data:image/png;base64," + Buffer.from(bitmap, "binary").toString("base64")
      ); // base64编码
    }
    
    

    修改renderMarkdownToWord方法
    word的imgde src

    到此本文内容差不多了

    技术选型

    模板引擎

    模板引擎很多其中pug来到现在这家公司才接触的,但是本人看着语法不是很习惯还是习惯用Ejs 或者underscore,本文用 Ejs作为模板引擎

        let people = ['geddy', 'neil', 'alex'];
        let html = ejs.render('<%= people.join(", "); %>', {people: people}); // echo -> geddy, neil, alex
    

    生成word

    生成word采用 html-docx-js

    github

    本文所有的内容都已上传
    github

    展开全文
  • 在asp.net中操作word,有多种...但是如果操作表格,并支持单元格合并及背景填充等复杂功能,需要仔细阅读其帮助文档。 1、如何在word指定的位置插入表格。 可以定义一个word模板,在模板中插入书签,定义表格的位置。

    在asp.net中操作word,有多种方式,使用ASPOSE.WORD组件,非常简单方便。但是如果操作表格,并支持单元格合并及背景填充等复杂功能,需要仔细阅读其帮助文档。

    1、如何在word指定的位置插入表格。

    可以定义一个word模板,在模板中插入书签,定义表格的位置。

    2、如何插入表格,可以使用DocumentBuilder类提供的相关方法,如

        StartTable();开始插入表格

        InsertCell();插入一个单元格

        EndRow();结束一行,如果再次调用isnertCell方法,将另起一行开始插入

       builder.EndTable();表格结束

     

    3、如何合并单元格。

    插入一个单元格后,需要设置单元格格式,即水平合并,还是垂直合并

                    builder.InsertCell();
                    builder.CellFormat.VerticalMerge = CellMerge.First;               

    builder.InsertCell();
    builder.CellFormat.VerticalMerge = CellMerge.Previous; //与上一行单元格合并
    builder.CellFormat.HorizontalMerge = CellMerge.None;

    4、填充单元格背景

    builder.CellFormat.Shading.BackgroundPatternColor = System.Drawing.Color.Black;

     

    效果如下图所示。详细代码,请下载。http://download.csdn.net/source/3536455

     

    展开全文
  • SpringBoot word文档转pdf

    2020-09-27 18:33:57
    项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf。 二.方案选择 Spire.Doc for Java方案 Spire.Doc for Java这个是商用收费的,不过API文档丰富且集成简单,免费版仅...

    一.背景

    项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf。

    二.方案选择

    1. Spire.Doc for Java方案
      Spire.Doc for Java这个是商用收费的,不过API文档丰富且集成简单,免费版仅支持3页转换。类似的还有ITEXT,这个商用也是受限制的。

    2. docx4j方案
      开源可商用,仅支持docx格式的word。

    3. jodconverter+LibreOffice 方案
      开源可商用,调用本地office服务,进行pdf转换,类似的还有jodconverter+openOffice。

    4. 其他

    至于其他的由于不支持跨平台不做考虑。

    三.实操

    1.docx4j

    首先尝试了docx4j,因为docx4j本身支持模板替换的操作,可一次性做替换及文档类型转换,而且仅支持docx类型,对于本次需求问题不大。

    1. 依赖仅需要一个即可
    		<dependency>
    			<groupId>org.docx4j</groupId>
    			<artifactId>docx4j-export-fo</artifactId>
    			<version>6.1.0</version>
    		</dependency>
    
    1. 主要代码
    @Slf4j
    public class PdfUtil {
    
        public static <T> void exportByLocalPath(HttpServletResponse response, String fileName, String path, Map<String,String> params){
            try (InputStream in = PdfUtil.class.getClassLoader().getResourceAsStream(path)) {
                convertDocxToPdf(in, response,fileName,params);
            } catch (Exception e) {
                log.error("docx文档转换为PDF失败", e.getMessage());
            }
        }
    
        /**
         * docx文档转换为PDF
         * @param in
         * @param response
         * @return
         */
        public static void convertDocxToPdf(InputStream in, HttpServletResponse response, String fileName, Map<String,String> params) throws Exception {
            response.setContentType("application/pdf");
             String fullFileName = new String(fileName.getBytes(), StandardCharsets.ISO_8859_1);
            response.setHeader("Content-disposition", "attachment;filename=" + fullFileName + ".pdf");
            WordprocessingMLPackage wmlPackage = WordprocessingMLPackage.load(in);
            if (params!=null&&!params.isEmpty()) {
                MainDocumentPart documentPart = wmlPackage.getMainDocumentPart();
                cleanDocumentPart(documentPart);
                documentPart.variableReplace(params);
            }
            setFontMapper(wmlPackage);
            Docx4J.toPDF(wmlPackage,response.getOutputStream());
        }
    
    
    
        /**
         * 清除文档空白占位符
         * @param documentPart
         * @return {@link boolean}
         */
        public static boolean cleanDocumentPart(MainDocumentPart documentPart) throws Exception {
            if (documentPart == null) {
                return false;
            }
            Document document = documentPart.getContents();
            String wmlTemplate =
                    XmlUtils.marshaltoString(document, true, false, Context.jc);
            document = (Document) XmlUtils.unwrap(DocxVariableClearUtil.doCleanDocumentPart(wmlTemplate, Context.jc));
            documentPart.setContents(document);
            return true;
        }
    
        /**
         * 设置字体样式
         * @param mlPackage
         */
        private static void setFontMapper(WordprocessingMLPackage mlPackage) throws Exception {
            Mapper fontMapper = new IdentityPlusMapper();
            fontMapper.put("隶书", PhysicalFonts.get("LiSu"));
            fontMapper.put("宋体", PhysicalFonts.get("SimSun"));
            fontMapper.put("微软雅黑", PhysicalFonts.get("Microsoft Yahei"));
            fontMapper.put("黑体", PhysicalFonts.get("SimHei"));
            fontMapper.put("楷体", PhysicalFonts.get("KaiTi"));
            fontMapper.put("新宋体", PhysicalFonts.get("NSimSun"));
            fontMapper.put("华文行楷", PhysicalFonts.get("STXingkai"));
            fontMapper.put("华文仿宋", PhysicalFonts.get("STFangsong"));
            fontMapper.put("宋体扩展", PhysicalFonts.get("simsun-extB"));
            fontMapper.put("仿宋", PhysicalFonts.get("FangSong"));
            fontMapper.put("仿宋_GB2312", PhysicalFonts.get("FangSong_GB2312"));
            fontMapper.put("幼圆", PhysicalFonts.get("YouYuan"));
            fontMapper.put("华文宋体", PhysicalFonts.get("STSong"));
            fontMapper.put("华文中宋", PhysicalFonts.get("STZhongsong"));
            mlPackage.setFontMapper(fontMapper);
        }
    }
    

    清除工具类,用于处理占位符替换不生效的问题,这里参考文章

    public class DocxVariableClearUtil {
    
        /**
         * 去任意XML标签
         */
        private static final Pattern XML_PATTERN = Pattern.compile("<[^>]*>");
    
        private DocxVariableClearUtil() {
        }
    
        /**
         * start符号
         */
        private static final char PREFIX = '$';
    
        /**
         * 中包含
         */
        private static final char LEFT_BRACE = '{';
    
        /**
         * 结尾
         */
        private static final char RIGHT_BRACE = '}';
    
        /**
         * 未开始
         */
        private static final int NONE_START = -1;
    
        /**
         * 未开始
         */
        private static final int NONE_START_INDEX = -1;
    
        /**
         * 开始
         */
        private static final int PREFIX_STATUS = 1;
    
        /**
         * 左括号
         */
        private static final int LEFT_BRACE_STATUS = 2;
    
        /**
         * 右括号
         */
        private static final int RIGHT_BRACE_STATUS = 3;
    
    
        /**
         * doCleanDocumentPart
         *
         * @param wmlTemplate
         * @param jc
         * @return
         * @throws JAXBException
         */
        public static Object doCleanDocumentPart(String wmlTemplate, JAXBContext jc) throws JAXBException {
            // 进入变量块位置
            int curStatus = NONE_START;
            // 开始位置
            int keyStartIndex = NONE_START_INDEX;
            // 当前位置
            int curIndex = 0;
            char[] textCharacters = wmlTemplate.toCharArray();
            StringBuilder documentBuilder = new StringBuilder(textCharacters.length);
            documentBuilder.append(textCharacters);
            // 新文档
            StringBuilder newDocumentBuilder = new StringBuilder(textCharacters.length);
            // 最后一次写位置
            int lastWriteIndex = 0;
            for (char c : textCharacters) {
                switch (c) {
                    case PREFIX:
                        // 不管其何状态直接修改指针,这也意味着变量名称里面不能有PREFIX
                        keyStartIndex = curIndex;
                        curStatus = PREFIX_STATUS;
                        break;
                    case LEFT_BRACE:
                        if (curStatus == PREFIX_STATUS) {
                            curStatus = LEFT_BRACE_STATUS;
                        }
                        break;
                    case RIGHT_BRACE:
                        if (curStatus == LEFT_BRACE_STATUS) {
                            // 接上之前的字符
                            newDocumentBuilder.append(documentBuilder.substring(lastWriteIndex, keyStartIndex));
                            // 结束位置
                            int keyEndIndex = curIndex + 1;
                            // 替换
                            String rawKey = documentBuilder.substring(keyStartIndex, keyEndIndex);
                            // 干掉多余标签
                            String mappingKey = XML_PATTERN.matcher(rawKey).replaceAll("");
                            if (!mappingKey.equals(rawKey)) {
                                char[] rawKeyChars = rawKey.toCharArray();
                                // 保留原格式
                                StringBuilder rawStringBuilder = new StringBuilder(rawKey.length());
                                // 去掉变量引用字符
                                for (char rawChar : rawKeyChars) {
                                    if (rawChar == PREFIX || rawChar == LEFT_BRACE || rawChar == RIGHT_BRACE) {
                                        continue;
                                    }
                                    rawStringBuilder.append(rawChar);
                                }
                                // 要求变量连在一起
                                String variable = mappingKey.substring(2, mappingKey.length() - 1);
                                int variableStart = rawStringBuilder.indexOf(variable);
                                if (variableStart > 0) {
                                    rawStringBuilder = rawStringBuilder.replace(variableStart, variableStart + variable.length(), mappingKey);
                                }
                                newDocumentBuilder.append(rawStringBuilder.toString());
                            } else {
                                newDocumentBuilder.append(mappingKey);
                            }
                            lastWriteIndex = keyEndIndex;
    
                            curStatus = NONE_START;
                            keyStartIndex = NONE_START_INDEX;
                        }
                    default:
                        break;
                }
                curIndex++;
            }
            // 余部
            if (lastWriteIndex < documentBuilder.length()) {
                newDocumentBuilder.append(documentBuilder.substring(lastWriteIndex));
            }
            return XmlUtils.unmarshalString(newDocumentBuilder.toString(), jc);
        }
    
    }
    
    

    2.poi-tl+jodconverter+LibreOffice 方案

    poi-tl这个是专门用来进行word模板合成的开源库,文档很详细。
    LibreOffice 下载最新的稳定版本即可。

    1. maven依赖
    		<!-- word合成 -->
    		<!-- 这里注意版本,1.5版本依赖的poi 3.x的版本 -->
    		<dependency>
    			<groupId>com.deepoove</groupId>
    			<artifactId>poi-tl</artifactId>
    			<version>1.5.1</version>
    		</dependency>
    		<!-- jodconverter  word转pdf -->
    		<!-- jodconverter-core这个依赖,理论上不用加的,jodconverter-local已经依赖了,但测试的时候不添加依赖找不到 -->
    		<dependency>
    			<groupId>org.jodconverter</groupId>
    			<artifactId>jodconverter-core</artifactId>
    			<version>4.2.0</version>
    		</dependency>
    		<dependency>
    			<groupId>org.jodconverter</groupId>
    			<artifactId>jodconverter-local</artifactId>
    			<version>4.2.0</version>
    		</dependency>
    		<dependency>
    			<groupId>org.jodconverter</groupId>
    			<artifactId>jodconverter-spring-boot-starter</artifactId>
    			<version>4.2.0</version>
    		</dependency>
    		<!--  工具类,非必须 -->
    		<dependency>
    			<groupId>cn.hutool</groupId>
    			<artifactId>hutool-all</artifactId>
    			<version>5.4.3</version>
    		</dependency>
    
    1. 主要代码
      JodConverterConfig配置类
    @Configuration
    public class JodConverterConfig {
    
        @Autowired
        private OfficeManager officeManager;
    
        @Bean
        public DocumentConverter documentConverter() {
            return LocalConverter.builder()
                    .officeManager(officeManager)
                    .build();
        }
    }
    

    yml配置文件

    jodconverter:
      local:
        enabled: true
        office-home: "C:\\Program Files\\LibreOffice"
    

    PdfService合成导出代码

    @Slf4j
    @Component
    public class PdfService {
    
        @Autowired
        private DocumentConverter documentConverter;
    
        public  void docxToPDF(InputStream inputStream,HttpServletResponse response,String fileName) {
            response.setContentType("application/pdf");
            try {
                String fullFileName = new String(fileName.getBytes(), StandardCharsets.ISO_8859_1);
                response.setHeader("Content-disposition","attachment;filename=\\"+fullFileName+".pdf\\");
                documentConverter
                        .convert(inputStream)
                        .as(DefaultDocumentFormatRegistry.DOCX)
                        .to(response.getOutputStream())
                        .as(DefaultDocumentFormatRegistry.PDF)
                        .execute();
            } catch (OfficeException |IOException e) {
               log.error("word转pdf失败:{}",e.getMessage());
            }
        }
    
    
        public void exportByLocalPath(HttpServletResponse response, String fileName, String path, Object params) throws Exception {
            BufferedOutputStream outputStream = null;
            BufferedInputStream wordInputStream = null;
            try (InputStream in = PdfService.class.getClassLoader().getResourceAsStream(path)) {
                // 生成临时文件
                String outPutWordPath = System.getProperty("java.io.tmpdir").replaceAll(File.separator + "$", "") + fileName+".docx";
                File tempFile = FileUtil.touch(outPutWordPath);
                outputStream = FileUtil.getOutputStream(tempFile);
                // word模板合成写到临时文件
                WordUtil.replaceWord(outputStream, in, params);
                // word 转pdf
                wordInputStream = FileUtil.getInputStream(tempFile);
                docxToPDF(wordInputStream, response,fileName);
                // 移除临时文件
                FileUtil.del(tempFile);
            } catch (Exception e) {
                log.error("docx文档转换为PDF失败", e.getMessage());
            } finally {
                IoUtil.close(outputStream);
                IoUtil.close(wordInputStream);
            }
    
        }
    
    

    四.结论

    1.docx4j方案

    • 依赖少
    • 同时支持word合成及格式转换
    • 转化效率较差
    • 对于含样式及图片转换不友好,容易排版混乱

    2.jodconverter+LibreOffice 方案

    • 操作稳定
    • 转换效率快
    • 集成依赖设置较多
    • 依赖本地服务
    • LibreOffice打开word可能排版样式错乱
      最后考虑项目需求,最终选择了jodconverter+LibreOffice方案。
    展开全文
  • Java使用FreeMarker自动生成Word文档(带图片和表单)

    千次阅读 多人点赞 2019-03-01 13:21:55
    Java使用FreeMarker自动生成Word文档(带图片和表单)1 背景2 目标效果3 创建Word模板3.1 创建模板文档3.2 转换模板文档3.3 处理模板文档中的占位符3.4 处理模板文档中的图片3.5 处理模板文档中的表单3.6 重命名模板...
  • JAVA使用POI-TL通过Word模板生成Word文件

    万次阅读 热门讨论 2018-08-15 16:04:24
    用Java操作word文档,毫无疑问,当下最流行apache poi,对于poi如何操作word文档,这里不作过多介绍。 这里主要讲解如何通过一个制作好的word模板文件,通过数据填充,生成加工好的word文件。 官方网站 ...
  • 生成Word文档类库源码

    2012-08-09 17:20:29
    通过该组件可获取word标准模板中的填充域,将文本、图片和表格信息填充至填充域并生成word文档。 其中规定word标准模板的文件格式为.doc、.dot、.docx和.dotx,输出的word文档文件格式为.docx。 该组件的填充域...
  • 通过该组件可获取word标准模板中的填充域,将文本、图片和表格信息填充至填充域并生成word文档。 其中规定word标准模板的文件格式为.doc、.dot、.docx和.dotx,输出的word文档文件格式为.docx。 该组件的填充域...
  • 需求背景: 由于业务需要实现一个通过FreeMarker来动态生成word报告,并且需要实现在线预览的功能... 然而再完成该功能的第一思路是 通过freemarker模板生成word文档,然后再将生成的word文档来生成html文件,最...
  • 需求:实现类似word文档的标尺功能。 技术背景模板,依赖属性 技术细节: 1、操作模板控件  在做WPF开发的时候,我们通常因为满足不同的需求会开发一些自定义控件来满足需要,我们会自定义模板来定义控件的...
  • java Word模板数据替换

    2021-06-02 14:11:51
    用Java操作word文档,毫无疑问,当下最流行apache poi,对于poi如何操作word文档,这里不作过多介绍。 这里主要讲解如何通过一个制作好的word模板文件,通过数据填充,生成加工好的word文件。 官方网站 ...
  • 需求背景:将用户提交的活动报名信息生成Word供用户下载。目前个人对于freemaker的理解是,freemaker是一个模板引擎工具,可以利用它来实现网页的文本输出。实现功能需要freemaker的jar包。百度都有。本人用的是...
  • 新建一个word空白文档。 步骤二、 依次点开“设计-页面颜色”,选择自己想要的背景色。一般豆沙绿的参数是:红:202,绿:234,蓝:202。 也可以设置成其它自己喜欢的颜色。 步骤四 另存为word模板文件Normal....
  • 用Java操作word文档,毫无疑问,当下最流行apache poi,对于poi如何操作word文档,这里不作过多介绍 这里主要讲解如何通过一个制作好的word模板文件,通过数据填充,生成加工好的word文件 2、官方网站 ...
  • 这是整理发布的一款个人简历背景模板,适合求职使用,有需要的小伙伴快下载使用吧!该文档为怕安静简历封面Word模板下载,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 需求背景:将用户提交的活动报名信息生成Word供用户下载。 目前个人对于freemarker的理解是,freemarker是一个模板引擎工具,可以利用它来实现网页的文本输出。 实现功能需要freemarker的jar包。百度都有。本人用...
  • 护理专业个人简历模板是以浅红条为背景栏,比较适合个人求职使用,该模板word格式,下载后可以根据实际...该文档为护理专业个人简历模板word免费下载,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以...
  • 该简历模板主要包含个人基本信息,求职意向,教育背景,资质证书,社会实践,个人能力,爱好,联系方式栏目,由工...该文档为大学生个人简历模板word格式,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 背景 最近需要整理数据库系统的文档资料,需要将数据库中的表结构整理出来,让其他人员比较直观的看懂系统中的数据库表结构,所以需要使用到power disinger 进行转换。 案例: 原来的样子 需要实现的样子 数据库...
  • 该简历模板主要包含个人基本信息,求职意向,教育背景,资质证书,社会实践,个人能力,爱好,联系方式栏目,由管...该文档为大学生个人简历模板word格式下载,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 该简历模板是以绿色为背景色分栏式个人求职简历模板,该模板word格式,下载后请用office2007打开效果最...该文档为绿色背景分栏式个人求职简历模板,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看...
  • 背景 1.公司给一个.doc的文档.让我动态生成pdf文件.在网上试了好多方法,感觉全是坑.最终采用了用xdocreport转化成pdf. 二.实现 (一).实现步骤 1.把.doc文件字体全部改成宋体 2.把.doc文件另存为.docx文件 3.将.docx...
  • 从本质上来讲,本文的操作都是基于模板替换思想的,即,我们通过替换Word模板中指定元素,来完成生成文档的目的。 不罗嗦了,直接进入主题,以下是步骤: 1) 要了解模板的业务背景——建立领域模型; 2...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 199
精华内容 79
关键字:

word文档背景模板