網(wǎng)站的會員功能怎么做推廣普通話手抄報模板
背景
孩子上小學(xué)要開始學(xué)認字了,每周有好多字要打印,要是直接拿一張A4紙去打印,字的排版就顯得尤為重要,排過來排過去,總感覺不夠正式。就想去網(wǎng)上搜一個可以下載的田字格模板。某度搜了半天,倒是搜到一堆好看的模板,要不就是收費下載,要不就是開VIP下載,還有更過分的,打著免費下載的旗號,下載之后,其實是一個免費的app,app可以選擇模板制作各種word,要打印或?qū)С龅臅r候就讓開永久VIP或者按月的VIP。哥啥東西沒見過,套路呀,真多!之前就為了下載一個ppt模板開了個永久VIP,反正看著也便宜,永久的才39.9,誰知道開完沒過多久網(wǎng)站就沒了,我估計是換了個網(wǎng)站又繼續(xù)運營去了。跟現(xiàn)在的培訓(xùn)機構(gòu)跑路一個道理。那我果斷不能開VIP啊,就捉摸著自己整個word來吧。
先看一下成品,看看是不是你們想要的,如果不是,請出門左拐去隔壁。
話不多說,直接開干。下面我會詳細的來說一下怎么操作吧
- 新建一個word
- 在word上畫田字格
- 我用wps,直接插入一個表格
插入之后是這樣的,別慌
我們需要調(diào)整一下表格的長度和寬度,選中表格,右鍵,打開表格屬性
調(diào)整行和列的高度為0.8,這里可以根據(jù)個人愛好來調(diào)整田字格的大小
調(diào)整之后的樣子
我們可以點擊右側(cè)的加號來添加田字格的數(shù)量,直到頂滿(這里可以先不做,可以直接復(fù)制完成之后的田字格)
- 接下來要將田字格中間的橫和豎轉(zhuǎn)換成虛線
選中第一個田字格,同樣是右鍵,打開邊框和底紋
先選擇方框,線型選擇實線(把方框變實線)
再選擇自定義,線型選擇虛線,顏色根據(jù)個人愛好設(shè)置,選擇右側(cè)的橫線和豎線
就變成了一個田字格,還可以根據(jù)個人愛好選擇線條的寬度,這樣一個田字格就做好了
突然發(fā)現(xiàn),要把這一排都變成田字格還挺麻煩,接下來就來復(fù)制吧,先把后邊的格子選中,刪除,再點?,復(fù)制田字格
這里復(fù)制出來的田字格邊界不清晰,還得設(shè)置,這塊兒沒別的好辦法,一個格子一個格子設(shè)置吧,仍然是打開邊框和底紋來設(shè)置,這里也比較簡單,第一個田字格不需要設(shè)置,后邊選中格子之后點擊左側(cè)豎線即可
相信細心的朋友也都發(fā)現(xiàn)了,這里還有對角線,可以畫米字格了,有需要的朋友可以學(xué)起來
好了,到此一行田字格完成
那就有人疑惑了,這個格子怎么寫字呢。。。。因為你寫的字很可能就寫到格子里了,比如這樣的
- 如何寫出楷體的字體
插入一個文本框
這里寫字,調(diào)整字體為楷體,大小為小初,并且調(diào)整邊框顏色和背景色為無
這個文本框中文字稍微靠下靠右,所以需要將格子左移上移一點點,正好對應(yīng)田字格的正中央。這樣的字體看起來端莊大方。
下面就是復(fù)制這個文本框給每一個田字格補充字了
你只需要不停的復(fù)制粘貼就可以了,很快就可以得到一個完整的田字格文檔啦
是不是很有成就感,你以為這就完啦?并沒有
首先這樣做出來的田字格相當于是一個模板,每次都需要復(fù)制出來一份,刪除舊的文字,寫上新的文字,看似很簡單,實則一點兒也不難。但就是挺浪費時間。
接下來就有點專業(yè)了,要用代碼去提高生產(chǎn)效率。非專業(yè)人士就到這結(jié)束吧。
我想只輸入一行文字,他自動幫我填充到表格中。
- 首先將模板另存為xml格式,打開之后你肯定不認識里面的內(nèi)容,將其格式化一下。
- 通過springboot+freemarker實現(xiàn)自動將輸入的文字填充到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轉(zhuǎn)換為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轉(zhuǎn)Word的具體實現(xiàn),可以使用第三方庫如Apache POI等return html.getBytes(); // 這只是示例,實際返回的應(yīng)該是Word文檔的字節(jié)流}
代碼比較簡單
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>
到這里你可以對外提供服務(wù)了,請求get接口,直接可以生成一個doc文件
http://localhost:8080/testdoc?word=你好嗎
后邊媳婦再要打印認字卡,可以直接通過這種方式生成了。撒花??ヽ(°▽°)ノ?