自学内容网 自学内容网

自制田字格word

背景

孩子上小学要开始学认字了,每周有好多字要打印,要是直接拿一张A4纸去打印,字的排版就显得尤为重要,排过来排过去,总感觉不够正式。就想去网上搜一个可以下载的田字格模板。某度搜了半天,倒是搜到一堆好看的模板,要不就是收费下载,要不就是开VIP下载,还有更过分的,打着免费下载的旗号,下载之后,其实是一个免费的app,app可以选择模板制作各种word,要打印或导出的时候就让开永久VIP或者按月的VIP。哥啥东西没见过,套路呀,真多!之前就为了下载一个ppt模板开了个永久VIP,反正看着也便宜,永久的才39.9,谁知道开完没过多久网站就没了,我估计是换了个网站又继续运营去了。跟现在的培训机构跑路一个道理。那我果断不能开VIP啊,就捉摸着自己整个word来吧。

先看一下成品,看看是不是你们想要的,如果不是,请出门左拐去隔壁。

在这里插入图片描述

话不多说,直接开干。下面我会详细的来说一下怎么操作吧

  1. 新建一个word
  2. 在word上画田字格
  • 我用wps,直接插入一个表格

在这里插入图片描述
插入之后是这样的,别慌
在这里插入图片描述
我们需要调整一下表格的长度和宽度,选中表格,右键,打开表格属性
在这里插入图片描述
调整行和列的高度为0.8,这里可以根据个人爱好来调整田字格的大小
调整之后的样子
在这里插入图片描述
我们可以点击右侧的加号来添加田字格的数量,直到顶满(这里可以先不做,可以直接复制完成之后的田字格

  • 接下来要将田字格中间的横和竖转换成虚线
    选中第一个田字格,同样是右键,打开边框和底纹
    在这里插入图片描述
    先选择方框,线型选择实线(把方框变实线)
    再选择自定义,线型选择虚线,颜色根据个人爱好设置,选择右侧的横线和竖线
    在这里插入图片描述
    就变成了一个田字格,还可以根据个人爱好选择线条的宽度,这样一个田字格就做好了
    在这里插入图片描述

突然发现,要把这一排都变成田字格还挺麻烦,接下来就来复制吧,先把后边的格子选中,删除,再点➕,复制田字格
在这里插入图片描述
这里复制出来的田字格边界不清晰,还得设置,这块儿没别的好办法,一个格子一个格子设置吧,仍然是打开边框和底纹来设置,这里也比较简单,第一个田字格不需要设置,后边选中格子之后点击左侧竖线即可
在这里插入图片描述
相信细心的朋友也都发现了,这里还有对角线,可以画米字格了,有需要的朋友可以学起来
在这里插入图片描述
好了,到此一行田字格完成
在这里插入图片描述
那就有人疑惑了,这个格子怎么写字呢。。。。因为你写的字很可能就写到格子里了,比如这样的在这里插入图片描述

  • 如何写出楷体的字体
    插入一个文本框
    在这里插入图片描述
    这里写字,调整字体为楷体,大小为小初,并且调整边框颜色和背景色为
    在这里插入图片描述
    这个文本框中文字稍微靠下靠右,所以需要将格子左移上移一点点,正好对应田字格的正中央。这样的字体看起来端庄大方。
    下面就是复制这个文本框给每一个田字格补充字了
    你只需要不停的复制粘贴就可以了,很快就可以得到一个完整的田字格文档啦
    在这里插入图片描述
    是不是很有成就感,你以为这就完啦?并没有
    首先这样做出来的田字格相当于是一个模板,每次都需要复制出来一份,删除旧的文字,写上新的文字,看似很简单,实则一点儿也不难。但就是挺浪费时间。

接下来就有点专业了,要用代码去提高生产效率。非专业人士就到这结束吧。
我想只输入一行文字,他自动帮我填充到表格中。

  1. 首先将模板另存为xml格式,打开之后你肯定不认识里面的内容,将其格式化一下。
  2. 通过springboot+freemarker实现自动将输入的文字填充到word中。
    话不多说,上代码
    talk is cheap, show me the code
private final Configuration configuration;

@GetMapping("/testdoc")
    private ResponseEntity<byte[]> testDoc(@RequestParam(name = "word") String word) throws IOException, TemplateException {

        Map<String, Object> dataModel = new HashMap<>();
        for (int i = 0; i < word.length(); i++) {
            dataModel.put("str" + i, word.charAt(i));
        }
        Template template = configuration.getTemplate("test.ftl");
        String processedHtml = FreeMarkerTemplateUtils.processTemplateIntoString(template, dataModel);
        // 将HTML转换为Word文档(此处简化处理,实际可能需要使用Apache POI等库)
        byte[] wordBytes = convertHtmlToWord(processedHtml);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", "document.docx");
        return new ResponseEntity<>(wordBytes, headers, HttpStatus.OK);
    }

    private byte[] convertHtmlToWord(String html) {
        // 这里省略了HTML转Word的具体实现,可以使用第三方库如Apache POI等
        return html.getBytes(); // 这只是示例,实际返回的应该是Word文档的字节流
    }

代码比较简单
yml文件配置

spring:
freemarker:
    suffix: .ftl
    charset: UTF-8
    template-loader-path: classpath:/templates/

xml文件改一下后缀放到这个位置
在这里插入图片描述
pom.xml文件需要引这个

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

到这里你可以对外提供服务了,请求get接口,直接可以生成一个doc文件
http://localhost:8080/testdoc?word=你好吗
后边媳妇再要打印认字卡,可以直接通过这种方式生成了。撒花✿✿ヽ(°▽°)ノ✿


原文地址:https://blog.csdn.net/null_equals/article/details/143415749

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!