word文档截图拷贝大小优化

2023-11-01

平时写教程到word文档会需要图文并茂的方式,所以会截很多图片,但是截取的图片都是png格式的,所以会造成word文档可能截几张图片就很大了,所以如何把截的图片以jpg形式拷贝进word呢。方法就是写一个程序把屏幕截图保存为jpg,然后再把jpg图片拷贝到剪切板。这样子word文档的体积大大减少,非常得方便

package test;

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

/**
 * 测试拷贝文件到剪切板
 *
 * 参考:https://stackoverflow.com/questions/31798646/can-java-system-clipboard-copy-a-file
 */
public class fileToClipboard {

    public static void main(String[] args) {
        File file1 = new File("C:\\Users\\Administrator\\Desktop\\垃圾桶\\a.docx");
        File file2 = new File("C:\\Users\\Administrator\\Desktop\\垃圾桶\\无标题.png");
        ArrayList<File> fList = new ArrayList<>();
        fList.add(file1);
        fList.add(file2);

        FileTransferable ft = new FileTransferable(fList);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ft, new ClipboardOwner() {
            @Override
            public void lostOwnership(Clipboard clipboard, Transferable contents) {
                //ClipboardOwner唯一的功能就是当(剪贴板)拥有者的数据被其它类覆盖时通知它.同时它可以用用通知应用程序释放关联到数据的资源的信号。
                System.out.println("剪切板数据被覆盖,可以去释放资源");
            }
        });
    }
    //实现了Transferable接口的文件传输类
    public static class FileTransferable implements Transferable {
        private ArrayList<File> fList;
        public FileTransferable(ArrayList<File> listOfFiles) {
            this.fList = listOfFiles;
        }

        @Override
        public DataFlavor[] getTransferDataFlavors() {
            return new DataFlavor[]{DataFlavor.javaFileListFlavor};
        }
        @Override
        public boolean isDataFlavorSupported(DataFlavor flavor) {
            return DataFlavor.javaFileListFlavor.equals(flavor);
        }
        @Override
        public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
            return fList;
        }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

word文档截图拷贝大小优化 的相关文章

  • 贝叶斯优化及其python实现

    贝叶斯优化是机器学习中一种常用的优化技术 其目的是在有限步数内寻找函数的最大值或最小值 它可以被视为在探索不同参数配置与观察这些配置结果之间寻求平衡点的过程 基本思想是将我们在过去的观察和体验 传递到下一个尝试中 从而在等待数据的反馈时 逐
  • 代码随想录算法训练营第一天

    Leetcode704 二分查找 题目链接 关键词 二分查找 循环不变量 区间 问题思路 二分查找的应用 关键在于循环过程中区间的维护 记住循环不变量原则 在这个问题中循环不变量是区间的定义 注意左闭右开和左开右闭的区别 class Sol
  • Python requests下载超大文件/批量下载文件

    一 下载超大文件 使用 python 下载超大文件 直接全部下载 文件过大 可能会造成内存不足 这时候要使用 requests 的 stream 模式 主要代码如下 iter content 一块一块的遍历要下载的内容 iter lines
  • 智慧教室--智能管控系统

    智慧教室系统是一款基于AIOT数字化平台的智能教育解决方案 该系统实现了全面数字化 自动化管理和智能化控制 可大大提高教学效率和质量 为学生带来更加优质的教育体验 智能管控是智慧教室系统的核心功能之一 通过物联网技术 将教室内各种设备和设施
  • python之浅拷贝、深拷贝

    什么是浅拷贝 深拷贝 理论来自python基础教程 在 Python 中 对象赋值实际上是对象的引用 当创建一个对象 然后把它赋给另一个变量的时候 Python 并没有拷贝这个对象 而只是拷贝了这个对象的引用 我们称之为浅拷贝 在 Pyth
  • Java代码判断当前操作系统是Windows或Linux或MacOS

    package com magic system public class SystemUtils 判断操作系统是否是 Windows return true 操作系统是 Windows false 其它操作系统 public static
  • 【INS-30014】无法检查指定的位置是否位于CFS上的解决办法

    安装oracle数据库过程中 出现 INS 30014 无法检查指定的位置是否位于CFS上的解决办法如下 安装过程中 选择 仅安装数据库软件 在安装成功后 使用DBCA工具创建以及配置数据库即可
  • 小程序跳转小程序

    小程序如何跳转到其他小程序 微信小程序跳转到其他小程序有两种方式 一种是用组件navigator跳转
  • 业务流程图怎么画?3步+8张案例,5分钟教你快速上手!

    业务流程图能很好地帮助我们梳理业务 高效表达需求 尤其是产品经理在梳理业务时 经常会用到业务流程图 业务流程图会在产品经理画原型图前 帮助梳理产品业务流程 避免做无用功 今天从业务历程图的基本介绍 常用场景和绘制方法三方面介绍 让大家对业务
  • docker创建CentOS云主机(docker实践)

    基于Ubuntu操作系统 从零开始构建一套docker虚拟化平台 docker的产物为 容器 docker构建容器 Nginx WEB docker启动虚拟机 创建CentOS云主机 同样是容器 对之前内容的总结熟悉 要求 CentOS 7
  • C4D和3dmax有什么区别?

    很多小伙伴都知道3d Max和C4D都是一款三维制作软件 可是 很少见到游戏公司使用C4D软件制作模型呢 反而设计师们用的最多的就是3dmax 而C4D往往用于广告行业 那么C4D和3d max的区别是什么呢 一 性质不同 1 3Dmax
  • 下面是两种解决Redis击穿问题的方法,并给出相应的Java代码实现。

    Redis击穿问题指的是当一个key在缓存中过期时 恰好有大量并发请求访问该key 导致请求直接打到数据库 引起数据库压力过大 甚至宕机 方法一 使用互斥锁 在访问缓存之前 首先获取一个互斥锁 防止多个请求同时访问数据库 只有一个请求可以访
  • macOS M2使用conda配置pytorch环境

    一 conda 首先我们需要有conda miniconda的安装配置流程可以看这个http t csdn cn ShcNb 二 进入官网 https pytorch org 选择对应的版本 复制下面的命令 conda install py
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • Git clone 时 出现SSL certificate problem error

    出现这个问题的原因是本地默认开启了SSL认证 但是在本地找不到SSL证书 解决办法就是关掉 SLL认证 git clone 时加上参数 no ssl check 完整的命令应该是 git clone no ssl check https g
  • 7z命令行加密文件夹和文件名

    因为有时候需要将非常机密的东西上传到网盘 毕竟网盘也不一定安全 而每次都鼠标点添加密码很麻烦 然后就用命令行脚本弄快 电脑安装7zip 在你要压缩的文件夹打开命令行 7z a r pABC12345 mhe on test 7z a 添加f
  • 多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!

    背景介绍 1 最近有一个大数据量插入的操作入库的业务场景 需要先做一些其他修改操作 然后在执行插入操作 由于插入数据可能会很多 用到多线程去拆分数据并行处理来提高响应时间 如果有一个线程执行失败 则全部回滚 2 在spring中可以使用 T
  • Redis热点数据处理

    1 概念 热点数据就是访问量特别大的数据 2 热点数据引起的问题 流量集中 达到物理网卡上限 请求过多 缓存分片服务被打垮 redis作为一个单线程的结构 所有的请求到来后都会去排队 当请求量远大于自身处理能力时 后面的请求会陷入等待 超时
  • 非常优秀的网站设计案例,设计师必备

    厚积才能薄发 一个优秀的设计师的天性一定是想要获得更多网站设计灵感 擅于为新项目寻找创意切入点 搜索设计参考资源 最新的设计趋势 今天为大家带来了一组免费可商用的网站设计案例 通过这些网站设计案例 你可以获得 寻找不同风格的网站灵感 配色
  • 深度学习模型参数量/计算量(附计算代码)

    参考 https mp weixin qq com s biz MzI4MDYzNzg4Mw mid 2247546551 idx 2 sn f198b6365e11f0a18832ff1203302632 chksm ebb70e63dc

随机推荐