乐于分享
好东西不私藏

《Word选中图片尺寸调整工具:只改你选中的那一张,其他纹丝不动——指哪改哪,就是这么精准!》

《Word选中图片尺寸调整工具:只改你选中的那一张,其他纹丝不动——指哪改哪,就是这么精准!》

“带你横跨办公自动化的数据江海”

@摸鱼

前言

关于摸鱼

ABOUT MOYU

闻道有先后,术业有专攻。

各位大佬朋友们好!

~我依旧是你们的老朋友摸鱼~

在职场摸爬滚打的这十多年里,我用Python悄悄干了不少“正事”——不知不觉攒下了一整套办公自动化的实用项目技巧。去年10月初创立了公众号 「码海听潮」 ,初衷很简单:把重复的劳动交给代码,把摸鱼的时间留给生活。

目前已经吭哧吭哧更新了120多篇原创文章,每一篇都是实操干货,不讲虚的,只聊怎么用代码真正解放双手,帮大家早点下班、准点摸鱼

好了,多了不说,少了不唠,今天给大佬们分享一款本人原创的Word选中图片尺寸调整工具,这款小工具只改你选中的那一张,一键精确调整尺寸,其他图片纹丝不动。它具备撤销功能和调整统计,完美解决手工拉扯图片大小不一、排版错乱的痛点,特别适合需要修改文档中某几张图片尺寸、提升排版效率的场景。

《办公工具成品展示:》

《该办公工具的演示视频:》

已关注

关注

重播 分享

《该办公工具核心功能亮点:》

01

 亮点1:极简操作,一键精准调整 🎯

        • 告别手动拉扯:无需再用鼠标凭感觉拖拽图片,直接输入精确数值(厘米单位),一键完成尺寸修改。

        • 批量统计:实时记录成功/失败的调整次数,总调整数量一目了然,方便复盘。

        02

         亮点2:智能撤销,错误零负担📱

            • 一键恢复:如果不小心调错了尺寸,点击“撤销”即可恢复图片修改前的原始大小。

            • 历史追溯:清楚显示当前可撤销的次数,给用户充分的试错空间。

            03

            亮点3: 无缝衔接,不改Word习惯

            • 即连即用:自动连接当前打开的Word文档,无需关闭重启软件。

            • 置顶窗口:工具界面始终悬浮在屏幕右上角,随时调用,不干扰文档编辑视线。

            《该办公工具代码展示:》

            下面,我就用python代码让各位大佬见识一下,什么叫”传统文化遇上赛博效率”

            import sysfrom PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,                             QLabelQPushButtonQLineEditQFormLayout                            QMessageBoxQHBoxLayoutQFrame)from PyQt6.QtCore import Qtfrom PyQt6.QtGui import QFontclass WordImageResizer(QMainWindow):    def __init__(self):        super().__init__()        self.init_ui()    def init_ui(self):        self.setWindowTitle('Word选中图片尺寸调整工具')        self.setFixedSize(400380)        # 设置全局字体        font = QFont("Microsoft YaHei"11)        QApplication.setFont(font)        # 主窗口部件        main_widget = QWidget()        self.setCentralWidget(main_widget)        main_widget.setStyleSheet("""            QWidget {                background-color: #f5f5f5;            }            QLabel {                color: #333333;            }            QLineEdit {                background-color: white;                border: 1px solid #cccccc;                border-radius: 3px;                padding: 3px;            }            QPushButton {                background-color: #4CAF50;                color: white;                border: none;                border-radius: 4px;                padding: 6px;                min-width: 80px;            }            QPushButton:hover {                background-color: #45a049;            }            QPushButton:pressed {                background-color: #3d8b40;            }            QPushButton:disabled {                background-color: #cccccc;            }            QFrame {                background-color: white;                border: 1px solid #cccccc;                border-radius: 5px;            }        """)        # 布局        layout = QVBoxLayout()        form_layout = QFormLayout()        # 输入框        self.width_input = QLineEdit('4.65')        self.height_input = QLineEdit('5.52')        # 标签和输入框布局        form_layout.addRow('宽度(cm):', self.width_input)        form_layout.addRow('高度(cm):', self.height_input)        # 按钮布局        button_layout_1 = QHBoxLayout()        # 调整尺寸按钮        self.resize_btn = QPushButton('调整选中图片尺寸')        self.resize_btn.setStyleSheet("background-color: #2196F3;")        # 撤销按钮        self.undo_btn = QPushButton('撤销上次修改')        self.undo_btn.setStyleSheet("background-color: #9C27B0;")        self.undo_btn.setEnabled(False)        button_layout_1.addWidget(self.resize_btn)        button_layout_1.addWidget(self.undo_btn)        # 连接按钮        self.connect_btn = QPushButton('连接到Word')        self.connect_btn.setStyleSheet("background-color: #ff9800;")        # 统计信息框架        stats_frame = QFrame()        stats_frame.setFrameStyle(QFrame.Shape.Box)        stats_layout = QVBoxLayout()        # 统计标题        stats_title = QLabel("调整统计")        stats_title.setStyleSheet("font-weight: bold; color: #2196F3; font-size: 12px;")        stats_title.setAlignment(Qt.AlignmentFlag.AlignCenter)        stats_layout.addWidget(stats_title)        # 统计信息布局        stats_info_layout = QHBoxLayout()        # 左侧统计 - 成功        left_stats = QVBoxLayout()        self.success_count_label = QLabel("0")        self.success_count_label.setStyleSheet("font-size: 20px; font-weight: bold; color: #4CAF50;")        self.success_count_label.setAlignment(Qt.AlignmentFlag.AlignCenter)        success_text = QLabel("成功")        success_text.setAlignment(Qt.AlignmentFlag.AlignCenter)        left_stats.addWidget(self.success_count_label)        left_stats.addWidget(success_text)        # 右侧统计 - 失败        right_stats = QVBoxLayout()        self.fail_count_label = QLabel("0")        self.fail_count_label.setStyleSheet("font-size: 20px; font-weight: bold; color: #f44336;")        self.fail_count_label.setAlignment(Qt.AlignmentFlag.AlignCenter)        fail_text = QLabel("失败")        fail_text.setAlignment(Qt.AlignmentFlag.AlignCenter)        right_stats.addWidget(self.fail_count_label)        right_stats.addWidget(fail_text)        # 中间统计 - 合计        center_stats = QVBoxLayout()        self.total_count_label = QLabel("0")        self.total_count_label.setStyleSheet("font-size: 20px; font-weight: bold; color: #FF9800;")        self.total_count_label.setAlignment(Qt.AlignmentFlag.AlignCenter)        total_text = QLabel("合计")        total_text.setAlignment(Qt.AlignmentFlag.AlignCenter)        center_stats.addWidget(self.total_count_label)        center_stats.addWidget(total_text)        stats_info_layout.addLayout(left_stats)        stats_info_layout.addLayout(center_stats)        stats_info_layout.addLayout(right_stats)        # 撤销统计信息        undo_layout = QHBoxLayout()        undo_label = QLabel("可撤销次数:")        undo_label.setStyleSheet("color: #666666; font-size: 10px;")        self.undo_available_label = QLabel("0")        self.undo_available_label.setStyleSheet("color: #9C27B0; font-weight: bold; font-size: 10px;")        undo_layout.addWidget(undo_label)        undo_layout.addWidget(self.undo_available_label)        undo_layout.addStretch()        # 最后操作结果标签        self.last_result_label = QLabel("就绪")        self.last_result_label.setStyleSheet("color: #666666; font-size: 10px; padding: 5px;")        self.last_result_label.setAlignment(Qt.AlignmentFlag.AlignCenter)        self.last_result_label.setWordWrap(True)        stats_layout.addLayout(stats_info_layout)        stats_layout.addLayout(undo_layout)        stats_layout.addWidget(self.last_result_label)        stats_frame.setLayout(stats_layout)        # 状态标签        self.status_label = QLabel("状态: 未连接到Word")        self.status_label.setStyleSheet("color: #d32f2f; font-weight: bold;")        # 重置统计按钮        self.reset_stats_btn = QPushButton('重置统计')        self.reset_stats_btn.setStyleSheet("background-color: #9E9E9E;")        self.reset_stats_btn.setFixedWidth(100)        # 按钮布局        button_layout_2 = QHBoxLayout()        button_layout_2.addWidget(self.reset_stats_btn)        button_layout_2.addStretch()        # 添加到主布局        layout.addLayout(form_layout)        layout.addWidget(self.status_label)        layout.addWidget(self.connect_btn)        layout.addLayout(button_layout_1)        layout.addWidget(stats_frame)        layout.addLayout(button_layout_2)        layout.setSpacing(10)        layout.setContentsMargins(15151515)        main_widget.setLayout(layout)        # 设置窗口在右上角        self.move_to_top_right()    def move_to_top_right(self):        """移动窗口到屏幕右上角"""        screen_geometry = QApplication.primaryScreen().availableGeometry()        window_geometry = self.frameGeometry()        x = screen_geometry.width() - window_geometry.width()        self.move(x, 30)if __name__ == '__main__':    app = QApplication(sys.argv)    window = WordImageResizer()    # 设置窗口始终置顶    window.setWindowFlags(window.windowFlags() | Qt.WindowType.WindowStaysOnTopHint)    window.show()    sys.exit(app.exec())

            通过上面Python自动化脚本,仅用几秒钟的时间就完成原需手动操作数小时甚至数天的工作任务。从最初准备手动人工机械操作的麻木到用python实现高效自动化的畅快,工作效率获得指数级提升,终于实现了不加班熬夜的自由!

            大佬们也可以举一反三,参照上面的代码思路根据自己工作中的实际情况来具体问题具体分析,实现自己定制化的需求。

            《该办公工具的应用场景:》

            场景
            说明

            标书/投标文件制作

            需要将大量资质证书、产品图片、组织机构图统一为相同尺寸

            论文/学术报告排版

            学位论文、期刊投稿对图片尺寸有严格规定,批量调整实验照片、数据图表到指定大小

            企业规章制度/手册编写

            员工手册、操作指南中的示意图需要统一尺寸,保证打印装订后视觉效果整齐

            结语

            当Python遇见办公,牛马打工人终于笑出了猪叫声

            【职场人必看】每天早上一睁眼,想到又要面对:

            1.📊 堆积如山的Excel表格

            2.📑 机械重复的复制粘贴

            3.✍️ 永远改不完的各类文档

            4.诸如此类的更多……..

            是不是连Ctrl+Alt+Delete的心都有了?

            别慌!别急,摸鱼这位“职场外挂”已经带着Python代码来拯救你了!

            感谢各位大佬观看,还望各位大佬抬抬贵手一键三连,多多关注点赞转发评论,大佬们的支持才是摸鱼孜孜不倦更新原创干货的动力!

            另外,本篇文章的exe已上传nas私有云盘,有需要的大佬私信摸鱼君获取