精华内容
下载资源
问答
  • 写文章的过程中,一般加入一些图片会使得文章更加的生动活泼,达到图文并茂的效果。然而插入的图片往往是大小不一的,导致整篇文章毫无美感可言。今天小编教大家如何调整图片大小的方法,使你的文章整洁美观: 第一...

    写文章的过程中,一般加入一些图片会使得文章更加的生动活泼,达到图文并茂的效果。然而插入的图片往往是大小不一的,导致整篇文章毫无美感可言。今天小编教大家如何调整图片大小的方法,使你的文章整洁美观:

    第一步、创建一个新的WORD文档
    在这里插入图片描述

    第二步、打开新建的WORD文档在这里插入图片描述

    第三步、点击左上角主菜单栏里的“插入”选项在这里插入图片描述

    第四步、点击“图片”选项,会弹出“插入图片”对话框,选择需要插入的图片,点击确定在这里插入图片描述
    就会出现下面图片大小不一的情况在这里插入图片描述

    第五步、此时,选中需要修改大小的照片,比如第一张,点击鼠标右键会弹出菜单栏,在菜单栏里选择“大小和位置”,点击进去,弹出一个布局对话框,首先将对话框下方的“锁定纵横比”前面的对勾取消掉,然后更改对话框上方的“高度”和“宽度”的绝对值,小编这里更改为高10厘米,宽8厘米,然后点击“确定” 按钮在这里插入图片描述
    效果如下图在这里插入图片描述

    第六步、把剩余两张按同样步骤更改下就可以了。这里强调下,图片的长和宽是有合适的比例的,不然随便调了之后会出现图片内容变形的问题,这个目前小编也没有太好的建议,大家根据调整后的图片内容自我更改。在这里插入图片描述

    以上就是如何调整图片大小的方法了,希望对各位有所帮助!

    展开全文
  • 像往常一样图片加载到文档即可,只不过,要将图片缩放到整个文档,换句话说,图片的初始位置是 0,0大小就是文档的大小,比如你创建A4纸文档图片就应该缩放到大小(595,842),其他的纸张可以去网上查。...

    像往常一样将图片加载到文档即可,只不过,要将图片缩放到整个文档,换句话说,图片的初始位置是 0,0大小就是文档的大小,比如你创建A4纸大的文档,图片就应该缩放到大小(595,842),其他的纸张可以去网上查。示例代码如下:

    Document tDoc = new Document(PageSize.A4, 50, 50, 50, 50); //创建文档
    PdfWriter tWriter = PdfWriter.getInstance(tDoc, new FileOutputStream(mFileFullPath.toString())); //创建写入流
    tWriter.setEncryption(null,"1".getBytes(), PdfWriter.ALLOW_SCREENREADERS|PdfWriter.ALLOW_PRINTING,PdfWriter.STANDARD_ENCRYPTION_128); //加密
    tDoc.open();  //打开文档
    Image tImgCover = Image.getInstance(mImgPath+"cover.jpg");
       /* 设置图片的位置 */
       tImgCover.setAbsolutePosition(0, 0);
       /* 设置图片的大小 */
       tImgCover.scaleAbsolute(595, 842);
       tDoc.add(tImgCover);             //加载图片

    然后内容正常添加

    展开全文
  • Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片) 前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要求是服务器上的图片(只给出服务器图片...

    Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片)

    前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要求是服务器上的图片(只给出服务器图片路径,从服务器得到图片),前前后后加起来就不好内容了,网上并没有找到处理这种的代码和解决方式,只好自己写了,弄完了来记录下,防止以后再用.

    首先动手之前整理下思路:

    第一: 分析下word文档内容: 数据 + 图片
    1. 数据 ——— 数据库获取
    2. 图片 ——— 拿到数据库连接地址,获取服务器图片.(重点)
    第二:分析下实现思路
    1. 数据部分很好处理,后面代码上直接可以一步完成
    2. 图片部分需要注意一下
           2.1.获取数据库图片链接(这个简单跟数据一样处理)
           2.2.根据链接从服务器获取图片并保存到本地
               2.2.1.注意:数据库得到的图片链接,要想从服务器获取,有的字符是需要转义的,这个需要操作的
           2.3.读取本地的图片,将图片信息转为base64,存入跟普通数据一起的实体类中
           2.4.将这个实体类导出到指定的word模板中
    

    上述仅仅为简单分析,实际的编写过程中肯定会遇到很多需要额外操作的内容,后面为大家分析.
    那么现在就开始编写代码吧:

    我们用到的技术为freemarker,其实有好多导出文档的技术,这边就不多说了.
    第一步:添加pom.xml 我们所需要的依赖,这边我就把我差不多要用的拿出来了,代码太多了就不全粘了.
    当然重点就是freemarker.

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.16</version>
                <scope>provided</scope>
            </dependency>
    
            <!-- JSONObject对象依赖的jar包 -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ezmorph</groupId>
                <artifactId>ezmorph</artifactId>
                <version>1.0.6</version>
            </dependency>
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.2.3</version>
                <classifier>jdk15</classifier><!-- 指定jdk版本 -->
            </dependency>
            <!-- Json依赖架包下载 -->
    
            <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5</version>
            </dependency>
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-support</artifactId>
                <version>2.1.9</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
            <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.23</version>
             </dependency>
        </dependencies>

    首先我们需要数据,也就是从数据库里面获取到的数据,这个我就不写了,就是简单的从数据库获取数据而已,数据的格式为List< Map< String,Object>> resList 集合.

    现在就相当于我们已经有数据了,它就是resList,里面有很多字段信息,包括图片的链接(我这边就先给出两个图片字段 jjyp,yjtp链接吧),http://192.168.0.101:1110/GPRS/Ⅰ临无40 (1).jpg ,http://192.168.0.101:1110/GPRS/Ⅰ临无40 (2).jpg (虚拟链接).

    拿到了图片的链接地址,我们就要从服务器获取图片了,并且将它保存到本地 .但是呢再次之前我们还要做的就是图片链接转码,可以直接访问图片链接,地址栏上面的链接就是转码之后的链接(浏览器自动转码),但是代码里面并不会自动转的,所以这里我们要手动转下码才行:

    public class CnToEncode {
        /**
         * @author 一只会飞的猪
         * 将字符串中的中文进行编码
         * @param s
         * @return 返回字符串中汉字编码后的字符串
         */
        public String charToEncode(String s) throws UnsupportedEncodingException {
            char[] ch = s.toCharArray();
                    String result = "";
            for(int i=0;i<ch.length;i++){
                char temp = ch[i];
                if(isChinese(temp)){
                    try {
                        // 遇到中文给中文转码
                        String encode = URLEncoder.encode(String.valueOf(temp), "utf-8");
                        result = result + encode;
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                }else{
                    // 判断是不是空格,是空格时转为 %20
                    if(temp==' '){
                        result = result + "%20";
                    }else{
                        // 判断字符是否为全角字符
                        if((int)temp>255){
                            String encode = URLEncoder.encode(String.valueOf(temp), "utf-8");
                            result = result + encode;
                        }else {
                            result = result + temp;
                        }
                    }
                }
            }
            return result;
        }
        /**
         * 判断字符是否为汉字
         * @param c
         * @return
         */
        private  boolean isChinese(char c) {
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
            if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
                    || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
                    || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
                return true;
            }
            return false;
        }
        }

    上面是我写好的方法,可以直接拿来用的.转码之后,你的图片链接就可以在代码里面访问服务器图片了,下面就来写访问服务器图片并返回图片输入流:

      public static InputStream getUrlImages(String imagesurl) throws UnsupportedEncodingException {
                 InputStream inputStream = null;
                 HttpURLConnection httpURLConnection = null;
                 try {
                     URL url = new URL(imagesurl);
                     if (url != null) {
                         httpURLConnection = (HttpURLConnection) url.openConnection();
                         httpURLConnection.setConnectTimeout(9000);
                         httpURLConnection.setRequestMethod("GET");
                         int responseCode = httpURLConnection.getResponseCode();
                         if (responseCode == 200) {
                             inputStream = httpURLConnection.getInputStream();
                         }
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
                 return inputStream;
             }

    然后保存到本地:

     // 将服务器图片保存到本地  输入流---->转为输出流写到文件中
               public void  ImageSaveLocal(String imagepath,String imagename,String imageurl) throws UnsupportedEncodingException {
                   CnToEncode cntoencode = new CnToEncode();
                   String imagesurl=cntoencode.charToEncode(imageurl);
                   int len = 0;
                   FileOutputStream fileOutputStream = null;
                   InputStream inputStream = getUrlImages(imagesurl);      // 得到服务器图片的输入流
                   // 创建文件夹
                   File file = new File(imagepath);
                   if (file.exists()) {
                       if (!file.isDirectory()) {
                           file.mkdir();
                       }
                   } else {
                       file.mkdir();
                   }
                   try {
                       byte[] imagesize = new byte[inputStream.available()];    // 图片长度缓存数组
                       fileOutputStream = new FileOutputStream(imagepath + "/" + imagename);   // 将要写入的图片地址
                       while ((len = inputStream.read(imagesize)) != -1) {
                           fileOutputStream.write(imagesize, 0, len);          // 写入图片
                       }
                   } catch (IOException e) {
                       e.printStackTrace();
                   } finally {
                       try {
                           // 关闭流
                           fileOutputStream.close();
                           inputStream.close();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                   }
               }

    我这边对文件夹的做了一个分类,有需要的可以看下,是按照图片链接的类别分的,比如gps是一类.
    这里写图片描述

    既然图片已经保存到了本地了,那么接下来就要读取本地的图片信息了.

      // 图片数据转Base64字节码 字符串
      // imgFile是上面存到本地的图片路径
              public String getImageStr(String imgFile){
                  InputStream in=null;
                  byte[] data=null;
                  try {
                      in=new FileInputStream(imgFile);
                      data=new byte[in.available()];
                      in.read(data);
                      in.close();
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
                  BASE64Encoder encoder=new BASE64Encoder();
                  return encoder.encode(data);
              }
    整理下思路我们做了什么.
         上面的各种方法让我们能够将服务器上面的图片存到本地,然后得到图片的base64字节码,图片的base64字节码是可以到处 
      word的也是能够显示的,咦~那我们是不是就可以到处了呢?nonono 现在还差一步,那就是把普通的数据和你处理之后的 图片 
      base64数据重新封装到一个Map集合中,这样一来,原数据集合中的图片数据就是我们所需要的base64字节码了啊,这样就能
      完整的导出啦.
    

    那现在我们在整个用来封装的方法:

    // 参数介绍:jsondata 这个参数是json字符串是你的图片字段名,没有这个系统是不会知道你哪些字段是图片的.
    //         map: 这个当然就是我们的数据了,包括了图片字段数据哦,后面给它替换了就行了
               starturl: 这个是服务器图片前缀,这你们根据需要而定
               imagespath:图片临时保存地址,也就是我门本地的图片地址了
      public Map<String,Object> JsonToMap(String jsondata,Map<String,Object> map,String starturl,String imagepath) throws UnsupportedEncodingException {
                   // starturl="http://101.37.20.41:9004/";
                    Map<String,Object> resmap = new HashMap<>();
                 // 解析json字符串
                    JSONObject jsonObject = JSONObject.fromObject(jsondata);
                    resmap = jsonObject;    // 将图片字段名转为map,后面好使用
                    // 实现源数据的图片数据被base64字节码替换
                    for ( String key : resmap.keySet()) {
                        if ("".equals(map.get(key)) || map.get(key) == null) {
                            String image = getImageStr(imagepath + "/" + "空白.jpg");
                            map.put(key,image);
                        } else {
                            String imageurl = starturl + map.get(key);
                            String imagename = (String) map.get(key);
                            String filetype = imagename.substring(0, imagename.indexOf("/"));   // 截取字段值"/" 之前的字符串作为二级文件夹
                            // 创建本地的二级文件夹
                            File file = new File(imagepath + "/" + filetype);
                            if (file.exists()) {
                                if (!file.isDirectory()) {
                                    file.mkdir();
                                }
                            } else {
                                file.mkdir();
                            }
                            // 拉取服务器图片存入本地
                            ImageSaveLocal(imagepath, imagename, imageurl);
                            // 图片转码
                            String image = getImageStr(imagepath + "/" + imagename);
                            map.put(key, image);
                        }
                    }
                         return map;
                }

    这样以来我们就得到了完美的数据结果了map.

    各位观众!接下来就开始导出word文档了.开始之前我们要制作一个xml文档模板,这个至于怎么做网上有好多教程,当然坑也多.
    那我们就上代码了:

    package com.jshhxx.commontoolsservice.controller;
    import com.jshhxx.commontoolsservice.common.AbstractController;
    import com.jshhxx.commontoolsservice.common.FileToZip;
    import com.jshhxx.commontoolsservice.common.ImagesFileCommon;
    import com.jshhxx.commontoolsservice.common.MapKeyToLowercase;
    import com.jshhxx.commontoolsservice.service.ExportWord.ExportWordService;
    import org.apache.ibatis.annotations.Param;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
    
    import java.io.*;
    import java.util.*;
    
    import static com.jshhxx.commontoolsservice.common.FileToZip.fileToZip;
    
    @RestController
    public class ExportController extends AbstractController {
    
    /**
     * @Autor  一只会飞猪
     * @dis    信息导出word文档
     * @param  wordType  给文档分类 gps/fcb 等
     * @param  reslut    数据
     * @param  wordPath  导出路径
     * @param  wordname  导出名称(单条数据导出命名有效,多条数据导出zip无效)
     * @param  wordfieldname  批量导出名称字段
     * @param  templatename    模板名称
     * @Param  jsondata  图片字段json
     *
     * */
        @Autowired
        private ExportWordService exportWordService;
    
        private static Logger log = LoggerFactory.getLogger(ExportController.class);
    
        @Value("${ToWordPath}")
        private  String ToWordPath;
    
        @Value("${ImagePath}")
        private  String ImagePath;
    
        @PostMapping("/genWord")
        public Map<String,String> genWord(Model model, @RequestBody List<Map<String,Object>> resListone,
                                           @Param("wordType") String wordType,
                                           @Param("wordname") String wordname,
                                           @Param("wordfieldname") String wordfieldname,
                                           @Param("templatename") String templatename,
                                           @Param("jsondata") String jsondata,
                                           @Param("starturl") String starturl
                                            ) throws UnsupportedEncodingException {
            boolean ret = false;
            String msg = null;
            boolean flag=false;
            FileToZip fileToZip = new FileToZip();
            Map<String,String> result=new HashMap<>();
            Map<String,Object>  resMap = new HashMap<>();
            List<Map<String,Object>> resList = new ArrayList<>();
            MapKeyToLowercase mapKeyToLowercase = new MapKeyToLowercase();
            ImagesFileCommon imagesFileCommon = new ImagesFileCommon();
    
            String outputFilePath = ToWordPath;  // 获取程序的当前路径  C:/wordgenerator
            // 创建导出word文档路径  filepath1:文件基础目录路径 C:\wordgenerator,
            //                       filepath2:文件分类路径  C:\wordgenerator\gps
            //                       filepath3:文件最终导出路径 C:\wordgenerator\gps\gps15341394803391208
                String num = String.valueOf((int)(Math.random()*9000+1000));
                String filepath1=outputFilePath;
                String filepath2=filepath1+"/"+wordType;
                String zzfile="/"+wordType+System.currentTimeMillis();
                String filepath3=filepath2+zzfile+num;
            // 创建文件夹
                String wordPath=createfile(filepath1,filepath2,filepath3);
                String resultPath = "/"+wordType+zzfile;
    
            //将map中的key全转为小写,以便模板注入.JsonToMap() 图片数据处理
             for(int j=0;j<resListone.size();j++){
                 resMap=mapKeyToLowercase.transformUpperCase(imagesFileCommon.JsonToMap(jsondata,resListone.get(j),starturl,ImagePath));
                 resList.add(resMap);
             }
    
            // 指定目录下的新建文件夹,针对每次操作都给以唯一的文件夹存放文件
            try {
            // 导出word文档
                if (!resList.isEmpty()) {
                    if(resList.size()==1){
                        Writer out = null;
                        if("".equals(wordname)||wordname==null){
                            wordname = "新建word文档";
                            out = new OutputStreamWriter(new FileOutputStream(wordPath+"/"+wordname+".doc"), "UTF-8");
                            exportWordService.createWord("/",templatename+".xml", resList.get(0), out);
                            result.put("url",resultPath +"/"+ wordname + ".doc");
                        }else{
                            out = new OutputStreamWriter(new FileOutputStream(wordPath+"/"+wordname+".doc"), "UTF-8");
                            exportWordService.createWord("/",templatename+".xml", resList.get(0), out);
                            result.put("url",resultPath +"/"+ wordname + ".doc");
                        }
                        out.close();
                    }else {
                        for (int i = 0; i < resList.size(); i++) {
                            Writer out = null;
                            // 如果有绑定的数据字段则以数据库数据为文件名
                            wordname= (String) resList.get(i).get(wordfieldname);
                            if("".equals(wordname)||wordname==null){
                                wordname = "新建word文档"+(i+1);
                            }
                            try {
                                out = new OutputStreamWriter(new FileOutputStream(wordPath + "/"+wordname + ".doc"), "UTF-8");
                                exportWordService.createWord("/", templatename + ".xml", resList.get(i), out);
                                out.close();
                            } catch (UnsupportedEncodingException
                                    | FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
    
                        // 打成压缩包
                        // 判断是是否有指定的分类别
                        if(wordType==null||"".equals(wordType)){
                              wordname= String.valueOf(System.currentTimeMillis())+num;
                              flag = fileToZip(ToWordPath, ToWordPath,wordname);
                              result.put("url", "/"+wordname+".zip");
                        }else {
                              wordname= wordType+"_"+String.valueOf(System.currentTimeMillis())+num;
                              flag = fileToZip(wordPath, wordPath,wordname);
                              result.put("url",resultPath +"/"+ wordname + ".zip");
                        }
                        if(flag){
                            log.error("===========================文件打包成功===========================");
                        }else{
                            log.error("===========================文件打包失败===========================");
                        }
                    }
                }
            } catch (Exception e) {
                msg = e.getMessage();
            }
            if((!"".equals(result))||result!=null){
                ret = true;
            }
            return result;
        }
    
        // 创建文件夹存放导出的word文件
        //  filepath1:文件基础目录路径 C:\wordgenerator,
        //  filepath2:文件分类路径     C:\wordgenerator\gps
        //  filepath3:文件最终导出路径 C:\wordgenerator\gps\gps15341394803391208
        public static  String createfile(String filepath1,String filepath2,String filepath3){
            File file1 = new File(filepath1);
            File file2 = new File(filepath2);
            File file3 = new File(filepath3);
    
            System.out.println(filepath3);
            try {
                if (file1.exists()) {
                    if (!file1.isDirectory()) {
                        file1.mkdir();
                        file2.mkdirs();
                        file3.mkdirs();
                    } else {
                        if (!file2.exists()) {
                            if (!file2.isDirectory()) {
                                file2.mkdirs();
                                file3.mkdirs();
                            } else {
                                if (!file3.exists()) {
                                    file3.mkdirs();
                                } else {
                                    if (!file3.isDirectory()) {
                                        file3.mkdirs();
                                    }
                                }
                            }
                        } else {
                            file2.mkdirs();
                            file3.mkdirs();
                        }
                    }
                } else {
                    file1.mkdir();
                    file2.mkdir();
                    file3.mkdir();
                }
            }catch (Exception e){
                log.error("=======================创建文件夹失败!======================");
            }
            return filepath3;
        }
    }
    package com.jshhxx.commontoolsservice.service.ExportWord.Impl;
    
    import com.jshhxx.commontoolsservice.service.ExportWord.ExportWordService;
    import com.jshhxx.commontoolsservice.word.MapperTest;
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.io.*;
    
    /**
     * @author 一只会飞的猪
     * @dis   查询数据导出word文档
     * */
    
    @Service
    public class ExportWordServiceImpl  implements ExportWordService {
    
        @Autowired
        private MapperTest mapperTestm;
    
        private Configuration configuration =new Configuration();
        // 将数据导入到模板word中,并生成word文档
        public void createWord(String templatePath, String templateName,
                               Object dataMap, Writer out) {
            try {
                Template t = getTemplate(templatePath, templateName);
                t.process(dataMap, out);
                out.close();
            } catch (IOException e) {
                System.out.println(e);
            } catch (TemplateException e) {
                System.out.println(e);
            } finally {
                try {
                    out.close();
                } catch (IOException e) {
                    System.out.println(e);
                }
            }
        }
        // 模板加载
        private Template getTemplate(String templatePath, String templateName)
                throws IOException {
            configuration.setClassForTemplateLoading(this.getClass(), templatePath);
            Template t  = configuration.getTemplate(templateName);
            t.setEncoding("UTF-8");
            return t;
        }
    
    }

    这样一来就大功告成了,后面的代码讲解的比较少,因为网上很多,主要讲的就是这整个功能的开发思路.
    这里写图片描述
    这里写图片描述
    功能是做出来了,但是乱码怎么解决呢?
    告诉你们一个小技巧,部署的时候制定下编码就行了,java -jar Dfile.encoding=utf-8 **

    展开全文
  • 这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片。 在解决这个问题之前,我们需要了解什么是...它往往是一些单纯的颜色图片,跟网页的背景图片一样。 所以怎么做?我突发奇想,...

    这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片。

    在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面。这又分为两种情况,一是局部的背景图片,一是全局的背景图片。局部的背景图片一般很少遇到,这里我要加的是整体上的一个背景图片。它往往是一些单纯的颜色图片,跟网页的背景图片一样。

    所以怎么做?我突发奇想,just do it,把图片加进去再说,试试居然成功了。很简单,像往常一样将图片加载到文档即可,只不过,要将图片缩放到整个文档,换句话说,图片的初始位置是 0,0大小就是文档的大小,比如你创建A4纸大的文档,图片就应该缩放到大小(595,842),其他的纸张可以去网上查。示例代码如下:

    Document tDoc = new Document(PageSize.A4, 50, 50, 50, 50); //创建文档
    PdfWriter tWriter = PdfWriter.getInstance(tDoc, new FileOutputStream(mFileFullPath.toString())); //创建写入流
    tWriter.setEncryption(null,"1".getBytes(), PdfWriter.ALLOW_SCREENREADERS|PdfWriter.ALLOW_PRINTING,PdfWriter.STANDARD_ENCRYPTION_128); //加密
    tDoc.open();  //打开文档
    Image tImgCover = Image.getInstance(mImgPath+"cover.jpg"); 
    			/* 设置图片的位置 */
    			tImgCover.setAbsolutePosition(0, 0);
    			/* 设置图片的大小 */
    			tImgCover.scaleAbsolute(595, 842);
    			tDoc.add(tImgCover);             //加载图片

    效果图如下:泛黄的就是背景图片,而文字是用程序打上去的,浮在背景之上(图一)。而其他的小图(比如盖章)一样可以浮在上面(图二)。

                                                                                                               (图一)

                                                                    

                                                                    (图二)

     

    展开全文
  • WORD中将图片大小设置成一样

    千次阅读 2019-02-26 11:18:02
    1、打开word文档,选中第一个图片,打右键,将图片尺寸设置为所需的大小; 2、选定下一张图片,按下CTRL+y; 3、依次选定下一张图片,使用CTRL+y快捷键组合; 4、把所有的图片都操作一遍,即可设置成大小一样图片...
  • 如今PDF文档与Office文档一样成为了一种通用文档,在日常工作中我们经常会碰到需要给PDF文件添加页眉和页脚/页码等情况,如果你正好是喜欢编程的朋友,不妨看看本篇文章。本文主要介绍如何在C#/.NET应用程序中使用...
  • Word将图片格式大小设置成一样大小

    千次阅读 2017-05-09 10:54:52
    Word图片大小归一
  • 如果您有一推图片且大小一样,想用word转成PDF,那么我推荐您使用VBA来调整图片大小,先给word设置 “页面布局-页边距”全部设置成0,再调整成合适的纸张大小,然后启动VBA 【Alt +F11】,粘贴如下代码,修改代码中...
  • Word转图片word工具,Word文档只读

    千次阅读 2009-09-24 16:01:00
    Word转图片word工具1、 Word是大家常用的办公软件,写一个...转图片Word是最佳解决方案:word文档原来的每一页转为图片,从表面看,文档和原来完全一样,实质完全不一样,因为全部是图片,复制后无法修改,彻底自己
  • 给多文档窗口添加背景图片

    千次阅读 2007-11-11 00:19:00
    VC是一个功能强大的可视化的开发工具,但是用VC做的标准界面与Windows一样色彩灰 暗单调,例如多文档窗口应用程序中的主框架窗口的背景便是如此。那么能否给主框架窗 口的背景改变一下色彩或是给主框架窗口加上一幅...
  • 快速提取Word文档中的所有图片

    千次阅读 2017-09-21 13:51:01
    Word文档中有很多张图片,现在客户想把图片都保存下来,是需要一个一个的鼠标右键另存为图片吗?有没有更快速的批量提取方法呢? 任何问题都难不倒微软大神的,快来看,具体操作跟小编一起学! 先来看一下我们已经...
  • 1、最常见的就是直接将多张图片拖入PDF软件,由于原来图片本身就大小不一样(可以通过图片的实际像素尺寸比例判断),那这样合成的PDF(页面大小)也会相应的很乱。 解决方法: 我们可以先用极速PDF编辑器打开需要...
  • Python 模块 python-docx 读写word文档 段落、图片、表格简介运行环境python-docx库安装Python-docx 的使用关于文档编写和样式配置jupyter环境文件启动 Anaconda Lab 简介 最近在工作中一直接触到统计月报这块的文档...
  • 教你如何将图片制作成PDF文档

    万次阅读 2016-09-23 11:16:33
    将一些图片文件转换成成为一个PDF格式文档,这也就是制作一个纯图片内容的文档,只是PDF文件接触的比较少,不知道怎样把图片转成PDF,其实要把图片转换成PDF还是很简单的。  一、用word或者ppt这里的编辑工具...
  • 如题,博主和部分程序员一样,喜欢编写Markdown文档(下文简称MD)。 近日有一个比较懒的需求,想在手机上看MD文档,但是又不想下载app。 又想躺在床上用手机看以前写的MD文档,索性想到了Github page 和Gitee ...
  • Python将本地图片存储到Word文档

    万次阅读 2018-11-27 11:23:41
    想要利用Python来操作word文档可以使用docx模块. 安装: pip install python-docx from docx import Document from docx.shared import Inches string = '文字内容' images = '1.jpg' # 保存在本地的图片 doc = ...
  • 问题描述:为什么同样一份word,别人的电脑里图片就能显示,放在我的电脑里就不能显示,只有显示一个框。...word2007 和word2003不一样, "选项"-"高级"-"显示文档内容“-”显示图片框“,勾掉就行了。
  •  2需求 用户在系统上填写信息,保存后导出标准的word文档,用户在系统上填写的信息我们用富文本编辑工具kindEditor,这个插件可以将用户从word文档拷贝的表格标签保存,但是图片信息需要另行上传。
  • word文档是文字、排版什么的都做完了,只想批量调一下图片尺寸。发现无论是word和还是wps都无法用快捷键选中所有图片。后面用宏解决了批量修改的问题。
  • 8位bmp图片格式详细说明文档

    万次阅读 2016-01-17 23:28:34
    Bmp图片分为2、4、8、16、24、32位图,24位及以上的图称为真...一个Bmp图片文档由四部分组成:文件头、文件信息头、颜色表(24位及以上位图非必须)和颜色数据,下面,我们来详细说明如何填充这些数据以得到8位bmp图。
  • 如何编辑修改PDF文档中的文字和图片,对于很多人来说,编辑修改word、ppt这类文档都是小菜一碟,但是PDF这种特殊的格式文档就有很多人不知道怎样编辑了。那么遇到这种格式文档的时候我们该怎样去处理呢? ​ ...
  • OS:Windows 软件:Typora 相信很多人都有撰写Markdown文档的需求,在...当我们向markdown中粘贴图片资源的时候,会自动提示保存图片到... 这时我们可以在存放markdown文档的地方建立一个assert或者pic静态资源文...
  • 一、制作.ftl后缀的word模板文件 1、新建一个word文档模板   使用其他文本编辑器编写表达式,如:Editplus    2、将word文档另存为xml并改名为.ftl后缀的文件 ...① 修改图片的数据内容...
  • 查看文档创建日期、修改日期和文档大小,可以使用fileCreatedDate属性、fileModifiedDate 属性、lastModified属性和fileSize属性来实现。 fileCreatedDate属性 该属性用来获取文档的创建日期。 语法: [date=]...
  • 大家在日常工作中会遇到这样的情况,在线给数万人生成一个证书、成绩单什么的,而且要求保存为word文档让大家下载。 难道我们要去学习word的编码格式?难道要去找一个word读写库?太复杂了!我们其实只是要把一个...
  • 不会和小编一样图片上的文字一点一点的敲打成文档文字的吧!其实生活中是有简单的方法的,今天小编就将这个简单的操作方法分享给大家。 第一步:首先,我们需要打开一个OCR文字识别工具,如果小伙伴们的电脑上没有...
  • 主要介绍 word 文档中插入图片、设置图片大小;插入表格、设置表格样式、字体样式;章节设置:页面大小、边距等;设置页眉页脚等方法。
  • 把Word文档转换为图片式的PDF文件,使其内容不可修改,起到内容保护作用。 技术思路: 1)把Word文档转换为PDF文件; 2)把PDF文件拆分为JPG图片,每页一张; 3)把JPG图片合并为一个PDF文件,文中代码只适用于...
  • 1、系统安装之后,其视频、图片文档、下载、音乐、桌面等文件夹的默认位置一般位于C盘:以桌面文件夹为例,其默认的文件夹路径为C:\Users\XXX\Desktop;(其中XXX表示用户的名称) 2、如何更改这些文件夹的默认...
  • cropper.js 裁剪图片并上传(文档翻译+demo)

    万次阅读 多人点赞 2017-12-14 15:46:04
    官网http://fengyuanchen.github.io/cropper/ 文档https://github.com/fengyuanchen/cropper/blob/master/README.md –v3.x版本引入+使用 <script src="/path/to/cropper.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 230,073
精华内容 92,029
关键字:

怎么让文档图片一样大