吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 384|回复: 15
收起左侧

[其他求助] 求一个批量删除word中指定图片的py脚本或软件

[复制链接]
圣师 发表于 2024-9-26 20:50
150吾爱币
word文档如下
链接: https://pan.baidu.com/s/1uyhjtpXaynTPqDNhuGrJxA 提取码: h872
--来自百度网盘超级会员v8的分享


需要的脚本功能:
遍历指定目录下的文件和子文件夹内的文档
逐个删除每个文档最后一页的图片(学科网广告)
脚本功能可以是先确认最后一页是否有图片,然后图片大小是否符合,最后执行删除动作
之后是输出到指定路径内,文件夹结构和命名都保存和输入文件夹一致

背景:
打印出来给学生用,不好带广告,用gpt写了脚本,好像都识别不到最后一页的图片
辛苦大神看看能否写个脚本或找到相关软件来实现功能

最佳答案

查看完整内容

@圣师 改了下,加了点代码,可以了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wdpjplc 发表于 2024-9-26 20:50
@圣师 改了下,加了点代码,可以了
 楼主| 圣师 发表于 2024-9-26 20:53
大家好,在此收集收集脚本或者文件
有效期截止到2024年10月26日20:53,麻烦在此之前点击以下链接将文件发送给我,支持发送任意格式的文件,感谢~
链接:https://pan.baidu.com/disk/main#/transfer/send?surl=ABgAAAAAABKybQ
来自:肆格张ya
SU150228 发表于 2024-9-27 00:27
直接删除页眉、页脚、最后一页容易,确认最后一页是否有同大小的图片比较困难。还有隐藏在文档的的小图片,而且现在多数“的”字都是图片了,
bywxbyjb 发表于 2024-9-27 06:46
https://www.52pojie.cn/thread-1903153-1-1.html
站内之前有人发过类似需求,用的vba。软件的话,我的ABC工具箱网上宣传的很多,就是不知道这个软件的是否收费,https://www.wodeabc.com/article/show/pid-81101581,估计那些加广告的用的也是类似软件吧
 楼主| 圣师 发表于 2024-9-27 08:21
SU150228 发表于 2024-9-27 00:27
直接删除页眉、页脚、最后一页容易,确认最后一页是否有同大小的图片比较困难。还有隐藏在文档的的小图片, ...

是的,页眉页脚 这个找gpt帮着写了。最后一页的内容死活识别不到,回复说是py检测不到分页的概念
 楼主| 圣师 发表于 2024-9-27 08:24
bywxbyjb 发表于 2024-9-27 06:46
https://www.52pojie.cn/thread-1903153-1-1.html
站内之前有人发过类似需求,用的vba。软件的话,我的ABC ...

vba之前测试过并不是很好用,ABC工具箱我下载试试
52kun 发表于 2024-9-30 15:53
下面的VBA代码可以实现,具体使用方法:
1.        打开Word,按下 Alt + F11 打开VBA编辑器。
2.        在“项目”窗口中,右键点击“这个文档”,选择“插入” -> “模块”。
3.        将上述代码复制并粘贴到模块窗口中。
4.        修改代码中的 docPath变量,将其设置为你的Word文档所在的文件夹路径。
5.        运行这个宏(可以按下 F5 键或点击“运行”按钮)。


[Asm] 纯文本查看 复制代码
Sub DeleteLastPagePictures(folderPath As String)
    Dim fileSystemObject As Object
    Dim folder As Object
    Dim file As Object
    Dim wdApp As Word.Application
    Dim doc As Word.Document
    Dim lastPage As Word.Range
    Dim shp As Word.InlineShape
    
    ' 创建 FileSystemObject 对象
    Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
    
    ' 设置要遍历的文件夹对象
    Set folder = fileSystemObject.GetFolder(folderPath)
    
    ' 设置 Word 应用程序对象
    Set wdApp = Word.Application
    wdApp.Visible = False
    
    ' 遍历文件夹中的每个文件
    For Each file In folder.Files
        ' 检查文件是否为 Word 文档
        If Right(file.Name, 4) = ".doc" Or Right(file.Name, 5) = ".docx" Then
            ' 打开文档
            Set doc = wdApp.Documents.Open(file.Path)
            
            ' 初始化图片计数器
            imgCount = 0
            
            ' 从文档的末尾开始向前遍历所有InlineShape对象
            For i = doc.InlineShapes.Count To 1 Step -1
                Set lastImage = doc.InlineShapes(i)
                
                ' 增加图片计数器
                imgCount = imgCount + 1
                
                ' 删除找到的最后一张
                lastImage.Delete
                
                ' 退出循环
                Exit For
            Next i
            
            ' 保存并关闭文档
            doc.Save
            doc.Close
        End If
    Next file
    
        ' 遍历子文件夹
    Dim subFolder As Object
    For Each subFolder In folder.SubFolders
        DeleteLastPagePictures subFolder.Path ' 递归调用
    Next subFolder
    
    ' 清理对象
    Set fileSystemObject = Nothing
    Set folder = Nothing
    Set file = Nothing
    Set wdApp = Nothing
    Set doc = Nothing
    Set lastPage = Nothing
    Set shp = Nothing
End Sub

Sub ToDeleteLastPagePictures()
    Dim docPath As String
    ' 调用 DeleteLastPagePictures 过程,并传递文件夹路径作为参数
    docPath = "G:\tt\doc\"
    DeleteLastPagePictures docPath
    MsgBox "处理完成!"
End Sub
wdpjplc 发表于 2024-10-7 14:23
@圣师 已发送,测试处理document文件和删除custom文件终版.py 测试可以处理,满足要求,删除最后一页图片,删除最后一个分页符,以及附带删除了一些文件自带的信息。修改root_dir = 后面的地址为要处理的文件夹,不过建议先备份一份再处理,或者启用110,111行,注释掉112行,测试好没问题了再说。
 楼主| 圣师 发表于 2024-10-7 16:00
wdpjplc 发表于 2024-10-7 14:23
@圣师 已发送,测试处理document文件和删除custom文件终版.py 测试可以处理,满足要求,删除最后一页图片, ...

下载脚本跑了一些文件,测试有部分文件最后一页的图片还是没删掉,下面是几个实例文件。
辛苦再看下

链接: https://pan.baidu.com/s/1wLEv7uaUBlg0D857Mn-bcg 提取码: xiva
--来自百度网盘超级会员v8的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 11:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表