当前位置: 首页 > news >正文

自制田字格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: .ftlcharset: UTF-8template-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=你好吗
后边媳妇再要打印认字卡,可以直接通过这种方式生成了。撒花✿✿ヽ(°▽°)ノ✿

相关文章:

自制田字格word

背景 孩子上小学要开始学认字了&#xff0c;每周有好多字要打印&#xff0c;要是直接拿一张A4纸去打印&#xff0c;字的排版就显得尤为重要&#xff0c;排过来排过去&#xff0c;总感觉不够正式。就想去网上搜一个可以下载的田字格模板。某度搜了半天&#xff0c;倒是搜到一堆…...

微软官方 .NET 混淆软件 Dotfuscator

微软官方 .NET 混淆软件 Dotfuscator 1、前言2、Dotfuscator 特色2.1、强大的保护2.2、不需要顾问2.3、世界一流的支持2.4、广泛的平台支持 3、Dotfuscator 功能介绍3.1、.NET Obfuscator3.2、篡改防御和提示3.3、监控性能和使用情况3.4、Silverpght XAML Obfuscatio3.5、WPF B…...

19 Docker容器集群网络架构:二、etcd 集群部署

文章目录 Docker容器集群网络架构:二、etcd集群离线部署2.1 准备工作2.1.1 上传etcd2.1.2 解压etcd2.1.3 拷贝文件到/usr/local/bin2.1.4 创建相关目录并赋权2.2 创建etcd集群2.2.1 创建etcd配置文件2.2.2 配置etcd服务文件2.2.3 启动ectd服务2.3 查看etcd集群成员2.3.1 查看e…...

React + SpreadJS 开发时常见问题

在使用React与SpreadJS进行开发时&#xff0c;可能会遇到各种各样的问题。以下是一些常见的问题及其解决建议&#xff1a; 1. SpreadJS初始化失败 问题描述&#xff1a; 有时候SpreadJS的初始化可能会失败&#xff0c;特别是在React组件的生命周期内不当的初始化时机。 解决…...

docker 调用宿主机实现关机

Docker调用宿主机关机命令或调用宿主机程序&#xff0c;这涉及到了Docker容器与宿主机之间的通信和资源共享技术。具体来说&#xff0c;这种技术或通讯方式主要通过以下几种方法实现&#xff1a; 一、使用数据卷 Docker允许使用-v或--volume选项将宿主机上的目录或文件挂载到…...

51单片机--- 16*32点阵滚动显示

实验目标:51单片机驱动74LS183控制16*32点阵滚动显示 实验步骤: 在Proteus里画出原理图 在Keil里用C语言编写程序 在Proteus中导入HEX文件,启动仿真 74LS138 简介...

渗透测试-百日筑基—文件上传篇特征截断渲染%00绕过——下篇

目录 day10-渗透测试文件上传篇&绕过&特征&截断&渲染 一、黑名单大小写绕过代码分析 1、获取文件后缀名进行判断&#xff0c;如果后缀在这个字典里就禁止上传。 2、黑名单大小写绕过攻击 二、利用 windows 系统特征绕过上传 1、windows 系统特征绕过漏洞…...

深度学习基础—循环神经网络(RNN)

引言 从本系列博客开始&#xff0c;我们将来一起学习一下NLP领域的相关基础知识&#xff0c;NLP领域重要的模型是RNN&#xff0c;在此之前&#xff0c;先来了解一些符号的含义。 1.符号定义 &#xff08;1&#xff09;符号定义 假设建立一个能够自动识别句中人名位置的序列模型…...

一二三应用开发平台自定义查询设计与实现系列2——查询方案功能实现

查询方案功能实现 上面实现了自定义查询功能框架&#xff0c;从用户角度出发&#xff0c;有些条件组合可以形成特定的查询方案&#xff0c;对应着业务查询场景。诸多查询条件的组合&#xff0c;不能每次都让用户来设置&#xff0c;而是应该保存下来&#xff0c;下次可以直接使…...

Redis 集群 问题

前言 相关系列 《Redis & 目录》《Redis & 集群 & 源码》《Redis & 集群 & 总结》《Redis & 集群 & 问题》 什么是Redis集群&#xff1f;为什么要集群&#xff1f;Redis集群的优/缺点是什么&#xff1f; Redis集群是指将多台Redis实例进行协…...

PyQt入门指南二十九 QListView列表视图组件

在PyQt中&#xff0c;QListView 是一个用于显示项目列表的视图组件。它可以与 QStandardItemModel 或其他模型一起使用&#xff0c;以显示和编辑数据。以下是一个简单的入门指南&#xff0c;介绍如何使用 QListView 组件。 安装 PyQt 首先&#xff0c;确保你已经安装了 PyQt5…...

cisco网络安全技术第4章测试及考试

测试 以下 ACE 将放置在何处&#xff1f; permit icmp any any nd-na 试题 1选择一项&#xff1a; 在连接到另一个路由器并已启用 IPv6 的路由器接口上 使用下一代防火墙而不是状态防火墙的一个好处是什么&#xff1f; 试题 2选择一项&#xff1a; 主动而不是被动防护互…...

vue下载安装

目录 vue工具前置要求&#xff1a;安装node.js并配置好国内镜像源下载安装 vue 工具 系统&#xff1a;Windows 11 前置要求&#xff1a;安装node.js并配置好国内镜像源 参考&#xff1a;本人写的《node.js下载、安装、设置国内镜像源&#xff08;永久&#xff09;&#xff…...

C++ | Leetcode C++题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {int n s.length();vector<vector<int>> dp(n, vector<int>(n));for (int i n - 1; i > 0; i--) {dp[i][i] 1;char c1 s[i];for (int j i 1; j…...

Python中的`update`方法详解及示例

Python中的update方法详解及示例 1. update方法简介2. update方法的应用场景3. 代码示例示例代码代码解释运行结果 4. 总结 在Python编程中&#xff0c;update方法是一个非常实用的工具&#xff0c;尤其是在处理集合&#xff08;Set&#xff09;数据类型时。本文将详细介绍upda…...

Docker本地安装Minio对象存储

Docker本地安装Minio对象存储 1. 什么是 MinIO&#xff1f; MinIO 是一个开源的对象存储服务器。这意味着它允许你在互联网上存储大量数据&#xff0c;比如文件、图片、视频等&#xff0c;而不需要依赖传统的文件系统。MinIO 的特点在于它非常灵活、易于使用&#xff0c;同时…...

vuex、vue-router实现原理

文章目录 Vuex 实现原理1. 状态管理2. 核心概念3. 数据流4. 实现细节 Vue Router 实现原理1. 路由管理2. 核心概念3. 数据流4. 实现细节 总结 Vuex 和 Vue Router 是 Vue.js 生态系统中非常重要的两个库&#xff0c;分别用于状态管理和路由管理。它们各自的实现原理如下&#x…...

我在命令行下剪辑视频

是的&#xff0c;你不需要格式工厂&#xff0c;你也不需要会声会影&#xff0c;更不需要爱剪辑这些莫名其妙的流氓软件&#xff0c;命令行下视频处理&#xff0c;包括剪辑&#xff0c;转码&#xff0c;提取&#xff0c;合成&#xff0c;缩放&#xff0c;字幕&#xff0c;特效等…...

Rust 力扣 - 643. 子数组最大平均数 I

文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 我们遍历长度为k的窗口&#xff0c;我们只需要记录窗口内的最大和即可&#xff0c;遍历过程中刷新最大值 结果为窗口长度为k的最大和 除以 k 题解代码 impl Solution {pub fn find_max_average(nums: Vec<…...

流场主动流动控制

对于流场的主动控制而言&#xff0c;其难点主要集中在强化学习的环境搭建过程&#xff0c;如何建立数值仿真与强化学习的信息交互是研究过程中的拦路虎。经过几个星期的研究&#xff0c;已基本实现由pycharm程序数据端向star ccm端的数据传递。其主要过程包括如下过程&#xff…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)

起因 为了实现在报销流程中&#xff0c;发票不能重用的限制&#xff0c;发票上传后&#xff0c;希望能读出发票号&#xff0c;并记录发票号已用&#xff0c;下次不再可用于报销。 基于上面的需求&#xff0c;研究了OCR 的方式和读PDF的方式&#xff0c;实际是可行的&#xff…...

欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!

多连接 BLE 怎么设计服务不会乱&#xff1f;分层思维来救场&#xff01; 作者按&#xff1a; 你是不是也遇到过 BLE 多连接时&#xff0c;调试现场像网吧“掉线风暴”&#xff1f; 温度传感器连上了&#xff0c;心率带丢了&#xff1b;一边 OTA 更新&#xff0c;一边通知卡壳。…...

ABB馈线保护 REJ601 BD446NN1XG

配电网基本量程数字继电器 REJ601是一种专用馈线保护继电器&#xff0c;用于保护一次和二次配电网络中的公用事业和工业电力系统。该继电器在一个单元中提供了保护和监控功能的优化组合&#xff0c;具有同类产品中最佳的性能和可用性。 REJ601是一种专用馈线保护继电器&#xf…...

如何处理React中表单的双向数据绑定?

在前端开发中&#xff0c;双向数据绑定&#xff08;Two-way Data Binding&#xff09;是指视图&#xff08;View&#xff09;与数据模型&#xff08;Model&#xff09;之间保持同步&#xff1a;当模型发生变化时&#xff0c;视图会自动更新&#xff1b;当视图&#xff08;用户输…...