吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20971|回复: 697
上一主题 下一主题
收起左侧

[原创工具] 【2024.4.4更新】【坤Tools】一个支持WORD/PDF/EXCEL/PDF等格式的转换软件

    [复制链接]
跳转到指定楼层
楼主
jidesheng6 发表于 2024-4-4 17:11 回帖奖励

零、前言

由于去年坤Tools的帖子已到锁定时间,所以开了新贴更新,原帖地址:点击前往
请风大核实。

本贴中部分跳转链接引用的是原帖地址,建议使用右键打开新标签页打开链接地址,防止当前页面被覆盖加载。

一、基本信息

工具名称:坤Tools

是否完全离线:是

开发框架和语言:.netFrameWork4.8框架+C#8.0

主要控件:Aspose.Words、Aspose.Cells、Aspose.Barcode、Aspose.Slides等

当前版本:V0.4.2

开发目的:主要目的是希望通过一个软件将多个用途场景融合在一个软件中,避免频繁切换软件;小部分功能是以前自用的整合到一起了

当前版本界面预览

0.4.2版本

下载地址(后续更新都是三个地方,网盘分享的是目录):

视频教程:点击前往

Windows7操作系统使用教程(主要是安装.netframework4.8):点击前往

关于使用管理员身份后,无法拖放文件的解决方案:点击前往

二、支持功能

  • WORD转PDF
  • WORD转EXCEL
  • WORD转EPUB
  • PDF转WORD
  • PDF转EXCEL
  • PDF转PPT
  • PDF版本转换
  • EXCEL转PDF
  • EXCEL转WORD
  • PDF转EXCEL
  • EPUB转WORD
  • EPUB转PDF
  • HTML转PDF(需配置chromium)点击查看配置教程
  • 简易二维码生成 点击查看二维码功能使用说明
  • 图片转PDF
  • 压缩PDF
  • 压缩图片
  • 移除PDF水印
  • 合并PDF
  • 合并WORD
  • 拆分PDF
  • 拆分WORD
  • 拆分PPT
  • 添加PDF水印
  • 移除PDF水印
  • 文档转图片
  • 姓名横排转竖
  • WORD内容批量替换
  • EXCEL内容批量替换
  • Twain设备调试
  • WEBP图片格式转换
  • 文件副本生成
  • 网卡设置
  • 单人表生成
  • 考评报表修改
  • 选举结果报告单生成

三、目前已知问题

1、WORDSNET-26247 无法为中文语言环境生成精确的布局(Aspose.Words控件,影响Word相关功能)

2、WORDSNET-26254 当系统语言环境为中文时,Aspose.Words 不支持 Microsoft Word 执行的字体替换(Aspose.Words控件,影响Word相关功能)

3、WORDSNET-26259 不允许设置用 SimSun 替换 FangSong_GB2312 和 KaiTi_GB2312(Aspose.Words控件,影响Word相关功能)

4、WORDSNET-26308 文档到图片的转换有差距(Aspose.Words控件,影响Word相关功能)

5、PDFNET-56072 PDF转换指定分辨率图片模糊(Aspose.PDF控件,影响PDF相关功能)

四、更新日志

  • 2024年4月3日:

    • 修复: Excel内容批量替换保存文件提示无法打开的问题

    • 新增:Word转Pdf新增支持使用本机Office转换Pdf,布局准确率为100%,需要本机安装Office;本功能需要管理员身份运行;支持调用WPS

    • 修复:合并word中存在域代码可能会更新的问题

    • 调整:Twain扫描调试功能的初始化Twain代码逻辑,已更改为在点击标签卡时进行初始化,而不是在程序启动时就进行初始化

    • 调整:恢复Excel转Word的功能

    • 修复:修复了勾选保存到源目录时还会弹出选择目录窗口的问题

    • 新增:姓名横转竖列功能新增支持文本去重功能,可对文本/姓名进行去重操作

    • 修复:WORDSNET-26420 文档合并后,部分形状丢失

    • 修复:WORDSNET-26421 文档合并后,通过空格控制的对齐方式丢失

    • 修复:Word转Excel的时候,遇到多页Word,不会自行创建sheet进行分页的问题

    • 修复:Excel内容批量替换,只能替换文本格式单元格的问题

    • 新增:考评报表修改模块支持批量对某行/某列的X-X行/列进行参数的批量调整,本功能比较复杂,无论是代码还是使用层面都是如此,所以应该不会考虑进一步优化

    • 优化:大幅优化代码结构,提升运行效率

    • 调整:调整部分窗口的控件摆放和执行逻辑

    • 调整:关于页面中添加了科比布莱恩特纪念馆

五、软件使用技巧

  • 软件分为X86和X64位的版本,主要区别为:

    • X86版本:因为X86的特性,程序的可用内存只有4GB左右,扣除系统占用的,实际可用内存应该在2GB左右,对于部分功能来说,占用内存比较高,程序整体占用接近1.8GB的时候软件就会闪退,不管你的物理内存有多大,32G或64G都会出现这个问题

    • X64版:和X86版本相反,就是可以使用电脑的全部物理内存,没有什么特殊限制,个人也是推荐使用X64版本

    • 分为两个版本原因主要是为了兼容Twain协议扫描仪,因为有些较老型号的扫描仪,是没有X64位驱动的(有些写着X64,实际上驱动释放并没有把ds源正确写入),X64程序就无法正确读取出来,所以需要使用X86程序来调用;对于不需要本功能的来说,只保留X64程序的就足够了

  • PDF添加水印部分,水印内容中填入了文字,则不插入图片水印;插入图片水印,先选择图片水印,确保水印内容编辑框内无内容,开始处理即可。图片水印支持设置参数:对齐方式、角度、不透明度、图片宽高。

  • 软件本身启动主动连接网络检测软件更新信息,对于内网环境的机器,虽然软件有检查更新功能,但是没有网络的情况下,是一直显示为最新版本的

  • 软件支持拖放和手动选择文件添加到列表,拖放支持子目录递归查找,手动选择目录只支持选择文件,推荐使用拖放方式添加文件;由于程序有些功能需要使用管理员身份运行,但是管理员身份运行后,拖放功能失效,如果想要两者共存,可参考本方法关闭批准模式:点击前往

  • 文件支持手动调整顺序;支持单个移除列表文件或清空整个列表文件

  • 文件支持右键打开源目录和转换后文件功能;右键还可查询所选文件的详细信息

  • Word转PDF功能中的本机Office转换功能,需要本机安装任意版本的Office或者Wps;如果转换过程中出现任何报错,可点击界面提供的下载链接下载WPS进行修复

六、软件截图(功能太多,只展示部分功能截图)

  • WORD转PDF
    WORD转PDF

  • PDF转WORD
    PDF转WORD

  • 拆分WORD
    拆分WORD

  • 拆分PDF
    拆分WORD

  • 文档转图片
    文档转图片

  • 图片转PDF
    图片转PDF

  • HTML转PDF 点击查看配置教程
    HTML转PDF

  • 简易二维码生成
    HTML转PDF

  • 姓名横转竖列
    姓名横转竖列

  • Twain扫描仪调试
    Twain扫描仪调试

  • 系统工具
    系统工具

  • 单人表生成(本功能可用于插入各种类型图片到WORD指定位置)
    单人表生成

  • 文件副本生成(主要用于快速复制需要数量的文件副本,自动递增序号,自定义副本后缀)
    文件副本生成

  • 网卡设置
    网卡设置

  • 关于软件
    关于软件

  • 软件设置
    软件设置

七、常见问题解答

1、软件是免费的吗,后续有收费计划吗?

  • 坤Tools从2023年4月3日到现在,中途没有进行过任何收费,以后也不会进行收费。

2、软件需要联网吗,我是内网用户,会不会用不了?

  • 坤Tools确实有联网行为,主要是软件开启的时候会检测软件的更新状态,及时更新到最新版本;对于没有外网的内网用户,软件也是可以使用的,只不过检测不到最新版本,软件会一直显示为最新版本;至于能不能打开和使用,主要是看内网电脑对外部软件的限制要求严不严格,以及电脑系统基础环境是否正常

3、软件对文档的处理是在本机还是云端进行处理的,会有数据泄露风险吗?

  • 坤Tools的更新都是依靠Gitee的托管仓库来实现的,所有的更新信息都在上面,可手动在界面点击访问;作者是没有能力购买高昂服务器来免费维护的,程序所有的处理都是在本地完成的,没有任何依靠云端API处理文档的过程,对于安全方面有研究的网友,欢迎进行抓包分析、上传沙箱进行检测

4、为什么PDF转WORD功能,转换出来的是图片而不是文字?

  • PDF文件有多种形式,简单说下扫描件和使用WORD转PDF的正常PDF文件的区别:

    • 扫描件:其实就可以理解为用扫描仪扫描出来的PDF,这种PDF和用手机拍照以后把图片放到WORD里面再转为PDF是没有区别的,软件只是反向还原这个过程,所以转换的WORD里面也是图片

    • 正常PDF文件:正常从WORD转过来的PDF文件,在浏览器中打开,文字是可复制的,这是因为PDF中存在了文本、段落信息,所以使用PDF转WORD功能,是可以正常完美还原的

    • 可能有的人会说,对于扫描件可以用OCR,为什么不开发OCR呢?

      • OCR的功能以前写过,但是并不能保证识别率,而且OCR在本地来做是比较吃资源的,如果用过ABBYY的应该知道,OCR识别的时候,电脑占用特别高,而且有些库是只能用64位程序的,比如著名的飞浆PP;最主要的一点是,如果只是单纯的将PDF里面的文字识别存放在TXT里面,我觉得没有什么意义,真正的对扫描件进行PDF转WORD,应该是去分析文档结构,然后按照文档结构去还原文字和其他信息,并且保证在原来的位置上,但是这个难度是比较大的,金山等一些技术大厂应该是可以做到的,我只是个业余爱好者,并没有这样的技术能力去实现这个东西,所以没办法给大家开发这种功能。

5、为什么软件的UI这么丑?可以做的好看一点吗?

  • 首先说声抱歉;因为当初开发的时候最开始是给自己用的,界面上比较随意,认为达到功能就足够了,后期忙于功能的增添,没有考虑太多,坤Tools发展到今天,不算Winform自动生成的代码量,大概在1.2w行左右,这个代码量如果我更换框架,等于重写项目了,这个工作量是比较大的,个人有点无能为力,目前版本的界面,是能做到最优解了,更换框架意味着很多控件需要更换,代码也要重写很多,对于我自己来说,并不是特别划算。

6、有没有考虑过开源呢?让大家一起参与进来?

  • 第5个问题里面提到的,其实可以开源去解决,但是主要有两个原因我不愿意开源:

    • 当初代码写的很乱,现在问题就是只有我可以明白各个地方的调用,优化又有点力不从心,开源我怕被喷。

    • 因为Aspose是商业组件,如果开源的话,必定要移除一点东西,但是这样大家开发出来的就带水印了,这样的项目开源出去也没有意义;如果我不移除,我便担心有人作为收费软件对外销售,这样的话,项目存活不了太久。

7、软件会一直维护更新吗?如果不维护了,软件会有一天无法使用吗?

  • 坤Tools除了检测更新部分,其他的功能全都是完全离线本地执行的,软件是不存在某一天就无法使用这种情况的;维护更新主要还是看情况,因为不一定有时间,如果需求合理,BUG可以正常复现,可以解决的情况下,是可以尽力维护的;不过目前坤Tools的情况,算是比较稳定的了,将来更新也只有在第三方库的一些更新。

8、软件为什么我的电脑会直接打不开?什么都没显示,也没有报错?

  • 坤Tools依赖.netframework4.8环境,如果无法打开,请确定系统不是精简版系统后,点击重新安装.netframework4.8

  • 如果还是无效,可能需要重新安装系统,大概率是你的组件真的坏掉了

  • 对于Windows7用户,可参考此链接进行安装修复:点击前往

八、作者的话

首先,非常感谢从2023年4月3日以来在使用坤Tools的网友们,你们提供建议、反馈让我改进坤Tools,也感谢很多做公众号等平台的媒体网友推荐我的软件,我的想法很简单,大家都是打工人,如果我写的软件能让更多打工人受益,那便是值得的;坤Tools的界面不是很好看,功能可能还有欠缺,但是我还是希望能有人被坤Tools帮助到,希望大家能够使用坤Tools从繁琐重复的工作中解脱出来,节省时间,提升效率,坤Tools不希望您节省的时间是为了干更多的活,而是希望您能有更多的事情陪陪您的家人。

因为坤Tools在过去一年里附件下载已经很多了,所以本文章不再采用附件方式存放链接地址,感谢各位网友耐心看完这边比较长的文章。

九、链接附录

  • 字体文件(WORD转PDF或者其他功能出现类似 口口口 乱码使用):点击前往

  • WPS专业版安装包(修复本机Office转换报错):点击前往

  • Windows7安装.netframework4.8工具包(提取码:6666):点击前往

  • AccessEngine(考评软件报表等相关功能需要本组件):点击前往

  • 软件下载地址(123盘)(提取码:6666):点击前往

  • 软件下载地址(百度网盘)(提取码:6666):点击前往

免费评分

参与人数 203吾爱币 +210 热心值 +185 收起 理由
vip209323 + 1 + 1 我很赞同!
俗尘 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jzgaxb + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qudengxia + 1 + 1 我很赞同!
孤单的雨 + 1 + 1 谢谢@Thanks!
erqie + 1 + 1 谢谢@Thanks!
sivion + 1 + 1 谢谢@Thanks!
wpknight + 1 + 1 谢谢@Thanks!
jinbo0201 + 1 + 1 热心回复!
wtwvip + 1 + 1 我很赞同!
ly88754816 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
curitis84 + 1 谢谢@Thanks!
jiejue + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
尛航 + 1 + 1 谢谢@Thanks!
s1620629697 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sbvjdx001 + 1 谢谢@Thanks!
禽兽快递哥 + 1 谢谢@Thanks!
w1608011442 + 1 用心讨论,共获提升!
crs000 + 1 + 1 热心回复!
sdpaopao + 1 + 1 谢谢@Thanks!
Maaduelist + 1 + 1 我很赞同!
aqzt + 1 谢谢@Thanks!
huanzhiyiran + 1 + 1 我很赞同!
Wan030 + 3 + 1 我很赞同!
onlymocha + 1 + 1 我很赞同!
fattyhk + 1 + 1 谢谢@Thanks!
qzhua + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
星轨零光 + 1 + 1 谢谢@Thanks!
barry1204 + 1 谢谢@Thanks!
ymhoho + 2 + 1 谢谢@Thanks!
caocao2020 + 1 + 1 我很赞同!
mnbuguai + 1 + 1 谢谢@Thanks!
D咗耳 + 1 + 1 谢谢@Thanks!
gaoziqid + 1 + 1 谢谢@Thanks!
st0rm + 1 + 1 用心讨论,共获提升!
cha0yang + 1 + 1 我很赞同!
cjmbbbbb + 1 + 1 谢谢@Thanks!
chang571 + 1 + 1 我很赞同!
yyds66 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
hero888 + 1 + 1 谢谢@Thanks!
mrjackliu + 1 + 1 谢谢@Thanks!
douhao1423 + 1 谢谢@Thanks!
dzp123156 + 1 + 1 热心回复!
linkverb + 1 + 1 谢谢@Thanks!
daemonlive + 1 + 1 我很赞同!
ag129 + 1 + 1 谢谢@Thanks!
Marken888 + 2 + 1 鼓励转贴优秀软件安全工具和文档!
夜乐章 + 1 + 1 功能好全啊 收藏了 感谢
discom + 1 谢谢@Thanks!
欺负老实人么 + 1 + 1 我很赞同!
luoluodeshijie + 1 谢谢@Thanks!
YcCong + 1 + 1 谢谢@Thanks!
lgz0701 + 1 + 1 谢谢@Thanks!
feel523 + 1 + 1 谢谢@Thanks!
niorker + 2 + 1 我很赞同!
gufengluoyun + 1 + 1 我很赞同!
吾爱破解午夜 + 1 + 1 我很赞同!
dongxm + 1 + 1 谢谢@Thanks!
zzddys0201 + 1 + 1 热心回复!
aventadorchan + 1 用心讨论,共获提升!
llk0 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
wangyongdesign + 1 + 1 谢谢@Thanks!
pppsky + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wtj28 + 1 用心讨论,共获提升!
0jiao0 + 1 + 1 谢谢@Thanks!
hang5008 + 1 + 1 谢谢@Thanks!
agoni55 + 1 + 1 热心回复!
全员小白 + 1 + 1 用心讨论,共获提升!
msnan + 1 谢谢@Thanks!
Kent2214 + 1 我很赞同!
wczsdwczsd + 1 我很赞同!
zermont + 1 + 1 谢谢@Thanks!
jiarong28 + 1 + 1 谢谢@Thanks!
lyz振 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
sohuso + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
longer334 + 1 + 1 我很赞同!
zhghoi + 1 + 1 谢谢@Thanks!
jinzhao666 + 1 + 1 谢谢@Thanks!
Yangyangyang456 + 1 + 1 我很赞同!
独立勿扰 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
a38324 + 1 + 1 收藏点赞一条龙
coolstone + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qianay001 + 1 + 1 谢谢@Thanks!
dplxin + 1 + 1 建议切换到 .net8 , hook点都差不多的
gorbydon + 1 + 1 我很赞同!
zt1812431172 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
laway05 + 1 + 1 谢谢@Thanks!
yanggbygb + 1 + 1 我很赞同!
zhjxh + 1 + 1 谢谢@Thanks!
theStyx + 2 + 1 谢谢@Thanks!
1315005441 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
zerzul + 1 + 1 热心回复!
FaceBook007 + 1 + 1 热心回复!
Asmart + 1 + 1 鼓励转贴优秀软件安全工具和文档!
shiqin + 1 + 1 好用
guoruihotel + 1 + 1 谢谢@Thanks!
y382938865 + 1 这太牛逼了吧!!!
a107833 + 1 + 1 我很赞同!
goodjob + 1 + 1 我很赞同!
lingyun011 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

来自 #
 楼主| jidesheng6 发表于 2024-4-7 19:17 |楼主
各位,有很多坛友建议我重构UI,但是原因我也讲过了,一个人搞不来。

所以在这里征集一下各位坛友的意见,是否需要开源给各位坛友进行二次开发重构,如果有能力重构的,可前往Gitee发布页提交Issue给我,但是为了避免律师函,我将会移除Aspose相关的特殊文件;不过这样编译出来的程序在进行各种转换的时候会添加上Aspose官方的试用红色水印。

免费评分

参与人数 1吾爱币 +1 收起 理由
skywolf + 1 尽量别开源,避免不法分子卖钱

查看全部评分

推荐
yimenghan 发表于 2024-4-4 19:31
感谢楼主无私的奉献。大佬牛擦擦,另外请问一下有没有那种指定文件名,比如aaaaa20000s55312.txt,a2aaasd5000aafaf.txt像这种很长的文件名,从左往右第几个字符位置开始到第几个位置进行批量替换。因为酷狗加载到本地的歌词名,特别长,然后用的那个本地音乐软件是根据音乐文件名匹配歌词的,所以歌曲多的话几百首歌,要进行歌词文件名称替换,就会很麻烦很麻烦,得一个一个重命名替换,费时费时还容易出错,比如:AZ珍珍 - 时光不染曾经-55f5c7b08dcce56737ce7007dde78ecf-156803003-00000000.krc    我只需要:AZ珍珍 - 时光不染曾经.krc 就行,有没有什么方法能进行批量替换,这个需要的就跟Excel里面那个函数取内容差不多的批量替换
推荐
 楼主| jidesheng6 发表于 2024-4-12 17:48 |楼主
wensi1117 发表于 2024-4-11 20:27
带佬太强了,爱你呦,顺便想看看源码,单纯想学习一下代码。

我给你提供一个最主要的入口点方法,这个是所有转换操作都会进入的一个函数,不是不想开源,只是开源要把代码什么的整理清晰,这个很累。

        /// <summary>
        /// 转换文件通用方法
        /// </summary>
        /// <param name="ListViewControl">转换文件所在的listview控件名称</param>
        /// <param name="StatusLabelControl">用于表示进度状态的标签控件</param>
        /// <param name="ConverType">转换的目标类型</param>
        /// <param name="ExtensionString">保存文件的后缀名称</param>
        public static void ConvertStart(
            ListView ListViewControl,
            Label StatusLabelControl,
            ConvertFileType ConverType,
            string ExtensionString,
            bool UseSourcePath = false,
            Button CallButton = null)
        {
            if (ListViewControl.Items.Count > 0)
            {
                string TempSaveDocxPathString = string.Empty;
                string SelectSavePathstring = "A";
                if (!UseSourcePath)
                {
                    IEnumerable<string> ISelectSavePathstring = Util.ShowSelectDialog(
                        false,
                        true,
                        string.Empty,
                        string.Empty);//调用文件选择窗口,获取文件夹名称
                    SelectSavePathstring = ISelectSavePathstring.FirstOrDefault();
                }

                if (string.Compare(SelectSavePathstring, default, StringComparison.Ordinal) != 0 &&
                    SelectSavePathstring != string.Empty &&
                    SelectSavePathstring != null)
                {
                    CallButton.Enabled = false;
                    for (int TempIndex = 0; TempIndex < ListViewControl.Items.Count; TempIndex++)
                    {
                        string ListViewFirstColumnText = ListViewControl.Items[TempIndex].Text;
                        string FileNameWithOutExtension = Path.GetFileNameWithoutExtension(ListViewFirstColumnText);//不带后缀的文件名
                        string FileNameSourcePath = Path.GetDirectoryName(ListViewFirstColumnText);//所选文件列表中文件的源目录
                        if (UseSourcePath)
                        {
                            SelectSavePathstring = FileNameSourcePath;
                        }
                        string ConvertedFileName = Path.Combine(
                            SelectSavePathstring,
                            $"{FileNameWithOutExtension}{ExtensionString}");
                        StatusLabelControl.Text = $"正在处理第{TempIndex + 1}个文件";

                        //根据不同类型调用不同的函数
                        switch (ConverType)
                        {
                            //word转pdf
                            case ConvertFileType.Word2Pdf:
                                TempSaveDocxPathString = Path.Combine(SelectSavePathstring, "TempDocx");
                                Directory.CreateDirectory(TempSaveDocxPathString);

                                object SelectedPdfCompliance = Enum.Parse(
                                    typeof(Aspose.Words.Saving.PdfCompliance),
                                    BodyForm.MainForm.PDFComplianceBox.SelectedItem.ToString());

                                Util.ConvertWord2Pdf(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    TempSaveDocxPathString,
                                    (Aspose.Words.Saving.PdfCompliance)SelectedPdfCompliance,
                                    (Aspose.Words.Settings.MsWordVersion)Enum.Parse(
                                        typeof(Aspose.Words.Settings.MsWordVersion),
                                        BodyForm.MainForm.Word2PDFOptimizCombox.SelectedItem.ToString()),
                                    BodyForm.MainForm.word2pdf_need_update_fields.Checked,
                                    (Aspose.Words.Saving.ColorMode)Enum.Parse(
                                        typeof(Aspose.Words.Saving.ColorMode),
                                        BodyForm.MainForm.word2pdf_colorMode.SelectedValue.ToString()),
                                    BodyForm.MainForm.EmbedFonts.Checked,
                                    BodyForm.MainForm.WORD2PDF_LoadPassword.Text,
                                    BodyForm.MainForm.UseLocalOffice.Checked);
                                break;
                            //pdf转word
                            case ConvertFileType.Pdf2Word:
                                Util.ConvertPdf2Word(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.PDF2WORD_UseBullet.Checked,
                                    BodyForm.MainForm.PDF2WORD_UseSUbOcr.Checked,
                                    (Aspose.Pdf.DocSaveOptions.RecognitionMode)Enum.Parse(
                                        typeof(Aspose.Pdf.DocSaveOptions.RecognitionMode),
                                        BodyForm.MainForm.PDF2WORD_Mode.SelectedValue.ToString()),
                                    BodyForm.MainForm.PDF2WORD_LoadPassword.Text);
                                break;
                            //excel转pdf
                            case ConvertFileType.Excel2Pdf:
                                Util.ConvertExcel2Pdf(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.ExportEachSheet.Checked);
                                break;
                            //word转图片
                            case ConvertFileType.Word2Image:
                                Util.ConvertWord2Image(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    ExtensionString,
                                    BodyForm.MainForm.SetGrayCheckBox.Checked,
                                    BodyForm.MainForm.PageExportCheck.Checked,
                                    Convert.ToInt32(BodyForm.MainForm.DpiItemList.SelectedValue));
                                break;
                            //pdf转excel
                            case ConvertFileType.Pdf2Excel:
                                Util.ConvertPdf2Excel(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.ExcelSheelMode.Checked);
                                break;
                            //批量替换word内容
                            case ConvertFileType.WordReplace:
                                if (BodyForm.MainForm.WordReplaceFindTextBox.Text != string.Empty)
                                {
                                    Util.ReplaceDocumentContent(
                                        ListViewFirstColumnText,
                                        ConvertedFileName,
                                        "WORD",
                                        BodyForm.MainForm.WordReplaceFindTextBox.Text,
                                        BodyForm.MainForm.WordReplaceTextBox.Text,
                                        BodyForm.MainForm.IgnoreFootContent.Checked,
                                        BodyForm.MainForm.IgnoreCase.Checked,
                                        false,
                                        -1,
                                        -1,
                                        false,
                                        ReplaceWordFontSetting.FontName,
                                        ReplaceWordFontSetting.FontSize,
                                        BodyForm.MainForm.UseNewStyle.Checked);
                                }
                                break;
                            //批量替换Excel内容
                            case ConvertFileType.ExcelReplace:
                                Util.ReplaceDocumentContent(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    "EXCEL",
                                    BodyForm.MainForm.ExcelFindTextBox.Text,
                                    BodyForm.MainForm.ExcelReplaceBox.Text,
                                    false,
                                    BodyForm.MainForm.ExcelNoIgnoreCase.Checked,
                                    BodyForm.MainForm.RemoveRows.Checked,
                                    Convert.ToInt32(BodyForm.MainForm.ExcelStartRow.Text),
                                    Convert.ToInt32(BodyForm.MainForm.ExcelEndRow.Text),
                                    BodyForm.MainForm.UseRegex.Checked);
                                break;
                            // 批量图片转为ICO
                            case ConvertFileType.Image2Ico:
                                Util.ConvertImage2Ico(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    Convert.ToInt32(BodyForm.MainForm.IcoSizeDrop.SelectedValue));
                                break;

                            // Word批量转换为Excel
                            case ConvertFileType.Word2Excel:
                                Util.ConvertWord2Excel(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            // Excel批量转换为Word
                            case ConvertFileType.Excel2Word:
                                Util.ConvertExcel2Word(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            // pdf拆分
                            case ConvertFileType.SplitPdf:
                                Util.SplitPdf(
                                    ListViewFirstColumnText,
                                    SelectSavePathstring,
                                    BodyForm.MainForm.SplitPdf_Range.Checked,
                                    BodyForm.MainForm.SplitPdfRange_Start.Text.Trim(),
                                    BodyForm.MainForm.SplitPdfRange_End.Text.Trim(),
                                    int.Parse(BodyForm.MainForm.SplitPdf_PerPageCount.Value.ToString()),
                                    BodyForm.MainForm.SplitPdf_ByBookMark.Checked,
                                    BodyForm.MainForm.SplitPdf_Single.Checked);
                                break;
                            // pdf添加水印
                            case ConvertFileType.AddWaterMarkPdf:
                                Util.AddWaterMark2Pdf(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.PdfWaterMarkText.Text,
                                    float.Parse(BodyForm.MainForm.PdfWaterMarkOpcityNumber.Text.ToString()),
                                    BodyForm.MainForm.PdfWaterMarkRotateDegNumber.Text,
                                    BodyForm.MainForm.PdfWaterMarkHorSetting.SelectedIndex,
                                    BodyForm.MainForm.PDFWaterMarkVerSetting.SelectedIndex,
                                    PrivateFontSetting.FontColor,
                                    PrivateFontSetting.FontName,
                                    PrivateFontSetting.FontSize,
                                    BodyForm.MainForm.AddWaterMarkBackGroundImageFileName,
                                    BodyForm.MainForm.WaterMarkImageHeight.Text,
                                    BodyForm.MainForm.WaterMarkImageWidth.Text);
                                break;
                            // pdf移除水印
                            case ConvertFileType.RemovePdfWaterMark:
                                Util.RemovePdfWaterMark(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            // ppt转pdf
                            case ConvertFileType.PPT2PDF:
                                object SelectCommentPostion = Enum.Parse(
                                    typeof(Aspose.Slides.Export.NotesPositions),
                                    BodyForm.MainForm.ExportNotePageCombox.SelectedValue.ToString());
                                Util.ConvertPPT2PDF(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.DrawBlackLine.Checked,
                                    BodyForm.MainForm.ConvertPPT2PDFPassword.Text.Trim(),
                                    BodyForm.MainForm.ExportHiddenPage.Checked,
                                    (Aspose.Slides.Export.NotesPositions)SelectCommentPostion);
                                break;
                            // pdf转ppt
                            case ConvertFileType.PDF2PPT:
                                Util.ConvertPDF2PPT(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.ExtraOcrBox.Checked,
                                    BodyForm.MainForm.SplitShapeBox.Checked,
                                    BodyForm.MainForm.RenderImageBox.Checked);
                                break;
                            // pdf版本转换
                            case ConvertFileType.ConvertPdfCompliance:
                                object SelectPdfCompliance = Enum.Parse(
                                    typeof(Aspose.Pdf.PdfFormat),
                                    BodyForm.MainForm.ConvertPdfComplianceVersion.SelectedItem.ToString());
                                Util.ConvertPdfCompliance(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    (Aspose.Pdf.PdfFormat)SelectPdfCompliance);
                                break;
                            // 压缩PDF
                            case ConvertFileType.CompressPDF:
                                Util.CompressPDF(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.CompressPDF_WEB.Checked,
                                    BodyForm.MainForm.CompressPDF_CompressImage.Checked,
                                    int.Parse(BodyForm.MainForm.CompressPDF_ImageQuailty.SelectedItem.ToString()),
                                    int.Parse(BodyForm.MainForm.CompressPDF_ImageResoution.SelectedItem.ToString()),
                                    (Aspose.Pdf.Optimization.ImageCompressionVersion)Enum.Parse(
                                        typeof(Aspose.Pdf.Optimization.ImageCompressionVersion),
                                        BodyForm.MainForm.CompressPDF_ImageCompressVersion.SelectedValue.ToString()),
                                    BodyForm.MainForm.CompressPDF_CompressImageFlate.Checked,
                                    BodyForm.MainForm.CompressPDF_RemoveUnuseStream.Checked,
                                    BodyForm.MainForm.CompressPDF_LinkSameStream.Checked,
                                    BodyForm.MainForm.CompressPDF_CancelEmbedFont.Checked,
                                    BodyForm.MainForm.CompressPDF_RemoveForms.Checked,
                                    BodyForm.MainForm.CompressPDF_RemoveUnuseObject.Checked);
                                break;
                            // 压缩图片
                            case ConvertFileType.CompressImage:
                                bool UseSelfExt = BodyForm.MainForm.CompressImage_NotUseSelfExt.Checked;//是否不使用源文件后缀名
                                string SavedFileName = string.Empty;
                                if (UseSelfExt)
                                {
                                    SavedFileName = ConvertedFileName;
                                }
                                else
                                {
                                    string ImageFileExtenString = Path.GetExtension(ListViewFirstColumnText);

                                    SavedFileName = Path.Combine(
                                        SelectSavePathstring,
                                        $"{FileNameWithOutExtension}{ImageFileExtenString}");
                                }

                                Util.CompressImage(
                                    ListViewFirstColumnText,
                                    SavedFileName,
                                    (Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode)Enum.Parse(
                                        typeof(Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode),
                                        BodyForm.MainForm.CompressJpegMode_Combox.SelectedItem.ToString()),
                                    (Aspose.Imaging.FileFormats.Jpeg.JpegCompressionColorMode)Enum.Parse(
                                        typeof(Aspose.Imaging.FileFormats.Jpeg.JpegCompressionColorMode),
                                        BodyForm.MainForm.CompressJpegColorMode_Combox.SelectedItem.ToString()),
                                    int.Parse(BodyForm.MainForm.CompressJpegQuailty_Combox.SelectedItem.ToString()),
                                    int.Parse(BodyForm.MainForm.CompressPngLevel_Combox.SelectedItem.ToString()),
                                    (Aspose.Imaging.FileFormats.Png.PngColorType)Enum.Parse(
                                        typeof(Aspose.Imaging.FileFormats.Png.PngColorType),
                                        BodyForm.MainForm.CompressPngColorMode_Combox.SelectedItem.ToString()),
                                    (Aspose.Imaging.FileFormats.Bmp.BitmapCompression)Enum.Parse(
                                        typeof(Aspose.Imaging.FileFormats.Bmp.BitmapCompression),
                                        BodyForm.MainForm.CompressBmpMode_Combox.SelectedItem.ToString()),
                                    int.Parse(BodyForm.MainForm.CompressBmpPixeBits_Combox.SelectedItem.ToString()));
                                break;
                            case ConvertFileType.Html2PDF:
                                Util.ConvertHtml2PDFAsync(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.html2pdf_textbox_chromepath.Text,
                                    BodyForm.MainForm.html2pdf_combox_pagesize.SelectedIndex,
                                    bool.Parse(BodyForm.MainForm.html2pdf_combox_pagedirect.SelectedValue.ToString()),
                                    BodyForm.MainForm.html2pdf_checkbox_usecss.Checked,
                                    BodyForm.MainForm.html2pdf_textbox_margin_top.Text,
                                    BodyForm.MainForm.html2pdf_textbox_margin_left.Text,
                                    BodyForm.MainForm.html2pdf_textbox_margin_bottom.Text,
                                    BodyForm.MainForm.html2pdf_textbox_margin_right.Text,
                                    BodyForm.MainForm.html2pdf_timeout.Value,
                                    BodyForm.MainForm.html2pdf_wait_timeout.Value,
                                    BodyForm.MainForm.html2pdf_wait_all_resource.Checked);
                                //Util.ConvertHtml2Pdf(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            case ConvertFileType.Word2EPUB:
                                int TempImageDpiValue = 100;
                                if (BodyForm.MainForm.CoverImageDpi.Text != string.Empty)
                                {
                                    TempImageDpiValue = int.Parse(BodyForm.MainForm.CoverImageDpi.Text);
                                }
                                Util.ConvertWord2EPUB(
                                    ListViewFirstColumnText,
                                    ConvertedFileName,
                                    BodyForm.MainForm.Word2EpubAuthorName.Text,
                                    BodyForm.MainForm.Word2EpubConverImage.Text,
                                    TempImageDpiValue);
                                break;
                            case ConvertFileType.EPUB2Word:
                                Util.ConvertEPUB2Word(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            case ConvertFileType.EPUB2Pdf:
                                Util.ConvertEPUB2Pdf(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            case ConvertFileType.SplitWord:
                                Util.SplitWord(
                                    ListViewFirstColumnText,
                                    SelectSavePathstring,
                                    BodyForm.MainForm.SplitWord_Single.Checked,
                                    BodyForm.MainForm.SplitWord_Range_Start.Text.Trim(),
                                    BodyForm.MainForm.SplitWord_Range_End.Text.Trim(),
                                    int.Parse(BodyForm.MainForm.SplitWord_PageCount.Value.ToString()),
                                    BodyForm.MainForm.SplitWordReUpdatePageNumber.Checked);
                                break;
                            case ConvertFileType.WeBp2Image:
                                Util.ConvertWeBp2Image(ListViewFirstColumnText, ConvertedFileName);
                                break;
                            case ConvertFileType.SplitPPT:
                                Util.SplitPPT(
                                    ListViewFirstColumnText,
                                    SelectSavePathstring,
                                    BodyForm.MainForm.SplitPPT_SignleExport.Checked,
                                    BodyForm.MainForm.SplitPPT_RangeExport_Start.Text,
                                    BodyForm.MainForm.SplitPPT_RangeExport_End.Text,
                                    (Aspose.Slides.SlideSizeType)Enum.Parse(
                                        typeof(Aspose.Slides.SlideSizeType),
                                        BodyForm.MainForm.SplitPdfSizeCombox.SelectedItem.ToString()),
                                    (Aspose.Slides.SlideSizeScaleType)Enum.Parse(
                                        typeof(Aspose.Slides.SlideSizeScaleType),
                                        BodyForm.MainForm.SplitPdfScaleCombox.SelectedValue.ToString()));
                                break;
                            default:
                                break;
                        }
                        ListViewControl.Items[TempIndex].SubItems.Add(ConvertedFileName);
                        ListViewControl.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

                        if (File.Exists(ConvertedFileName))
                        {
                            FileInfo ConverdFileInfo = new FileInfo(ConvertedFileName);

                            //获取转换后的文件大小
                            ListViewControl.Items[TempIndex].SubItems
                                .Add(Util.GetFileSizeDisplayString(ConverdFileInfo.Length));
                            ListViewControl.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
                        }

                        ListViewControl.BeginInvoke(
                            new Action(
                                () =>
                                {
                                    ListViewControl.Items[TempIndex - 1].Selected = true;
                                    ListViewControl.EnsureVisible(TempIndex - 1);
                                    ListViewControl.Focus();
                                }));
                    }
                    StatusLabelControl.Text = "处理完毕";
                    CallButton.Enabled = true;

                    //处理完毕后需要做的事情
                    switch (ConverType)
                    {
                        case ConvertFileType.Word2Pdf:
                            if (BodyForm.MainForm.OpenPdfOptions.Checked)
                            {
                                Task<List<string>> TempPdfFileNames = GetListViewLastItemContentAsync(
                                    BodyForm.MainForm.WordFileListView);
                                TempPdfFileNames.Result
                                    .ForEach(
                                        (pdfFileName) =>
                                        {
                                            Process.Start(pdfFileName);
                                        });
                            }

                            if (BodyForm.MainForm.RemoveTempDocx.Checked)
                            {
                                if (TempSaveDocxPathString != string.Empty)
                                {
                                    Directory.Delete(TempSaveDocxPathString, true);
                                }
                            }
                            break;
                        default:
                            break;
                    }

                    BodyForm.MainForm
                        .BeginInvoke(
                            new Action(
                                () =>
                                {
                                    if (string.Compare(
                                            BodyForm.MainForm.ShowOpenTargetDialog,
                                            "on",
                                            StringComparison.Ordinal) ==
                                        0)
                                    {
                                        DialogResult MessageBoxResult = MessageBox.Show(
                                            "处理完毕,是否需要打开转换后目录?",
                                            "提示",
                                            MessageBoxButtons.YesNo,
                                            MessageBoxIcon.Question);
                                        if (MessageBoxResult == DialogResult.Yes)
                                        {
                                            Process.Start(SelectSavePathstring);
                                        }
                                    }
                                }));
                }
            }
        }
沙发
dhwl9899 发表于 2024-4-4 17:15
谢谢大侠分享,收藏备用。
3#
dhwl9899 发表于 2024-4-4 17:17
字体文件(WORD转PDF或者其他功能出现类似 口口口 乱码使用:期盼百度盘,谢谢。
4#
 楼主| jidesheng6 发表于 2024-4-4 17:22 |楼主
dhwl9899 发表于 2024-4-4 17:17
字体文件(WORD转PDF或者其他功能出现类似 口口口 乱码使用:期盼百度盘,谢谢。

链接: https://pan.baidu.com/s/1kMNJLcoU7nx7uvBkvULxAg?pwd=xy1q 提取码: xy1q

单独给你分享个,这个在百度盘的分享软件目录里面应该也是有了的

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
dhwl9899 + 1 + 1 谢谢@Thanks!

查看全部评分

5#
dhwl9899 发表于 2024-4-4 17:24
谢谢@jidesheng6兄台厚爱。
6#
tingyucloud 发表于 2024-4-4 17:26
感谢您的无私分享
7#
ajue777 发表于 2024-4-4 17:29
真的是强啊
8#
gaoxiaoao 发表于 2024-4-4 17:32
大佬技术,格局令人仰慕啊
9#
binqi 发表于 2024-4-4 17:38
谢谢楼主分享  
10#
Owenpojie 发表于 2024-4-4 17:39
很强大啊,谢谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-30 03:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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