分享

WORD PDF EXCEL批量互转 、替换内容、转换图片、合并图片、合并PDF

 铜创新维科技 2023-04-10 发布于陕西

还是简单说下重写工具的原因:

  • 以前写的不满意

  • 练练手,熟悉下c#

工具还是和以前一样,也是对03的word有特殊照顾,给了很多参数在文档的设置上,但是不确定其他人转换出来有没有啥问题,和以前原理也是一样的,全部先转一次docx,然后把docx转成pdf

控件用的还是aspose(真的强)

新增功能

除了之前的Word转PDF的功能和处理完毕后自动打开PDF的功能外,加了点下面的功能:

  • WORD转PDF 【导出带书签】

  • 完成后可选择是否移除TempDocx目录   【程序会生成一个转换DOCX的临时目录,可选择结束后自动删除】

  • 转换完毕后合并列表里面的PDF文件 【目前暂时禁用,已添加到合并PDF页面】

  • PDF转WORD 【不支持扫描件PDF】

  • Excel转PDF 【坛友需求】

  • PDF转EXCEL 【坛友需求】

  • 合并PDF功能 【支持合并PDF、合并图片为整个PDF,合并图片需勾选图片合并模式,根据图片大小设置排版样式,支持JPG、PNG、BMP、TIF图片格式】

  • 文档转图片功能  【支持WORD、EXCEL、PDF导出格式为JPG、PNG、BMP、TIF格式的图片,支持导出灰度图片、支持设置导出图片的分辨率,范围:150-600】

  • 姓名横排转竖功能 【 这个也是自己用的,有时候会有将横排的名字转为竖列的需求,源文档里面会有各种圆圈或者方框的符号,或者括号和数字又或者是看不到的特殊符号,在这里处理会自动去除,可以自行设置两个字的名字是否进行对齐,不过是对于源文本来说的,也就是你的源文本里面名字就是两个字,如果加了括号或者有数字什么的就不会进行对齐;名字虽然叫姓名横排转换啥的,其实本意就是文本处理,你输入的是不是名字都没事,支持对源文本的姓名进行按姓氏笔画排序,这个功能我也不清楚准不准,国内的姓名排序太复杂了,这个功能仅供参考】

  • WORD内容批量替换 【加载多个WORD文件,统一查找文件中相同内容进行替换,支持正则表达式】

  • EXCEL内容批量替换 【加载多个EXCEL文件,统一查找文件中相同内容进行替换,支持正则表达式,支持自定义清空指定行范围数据/删除行】

  • Twain设备调试 【还在开发中,可能还有些BUG,这个是自己用的,主要就是用来调用支持Twain协议的扫描仪,进行图片扫描调试,改功能纯属调试用的,正常不需要用,页面也比较靠后】

一些隐藏的用法

  • 文件处理完毕后,在列表中文件名右键可呼出菜单,可删除单个文件或清空列表中全部文件

  • 支持拖拽文件到列表中

一些提示

  • 网盘里有X86和X64的版本,正常情况建议用X64版本,X64版本,程序可用系统的全部内存,X86版本应该是只能用4GB左右,在PDF转WORD上面,如果内存占用超过4GB,X86版本的可能会闪退【下午测试1852页PDF转WORD,81万个字符,超过4GB占用,程序抛出outofmemory的错误后软件退出】

  • X86版本用来调试twain设备,因为很多扫描仪是没有X64版的,都是X86,所以X64无法加载系统中已经安装的扫描仪驱动

  • EXCEL批量替换内容的功能没有详细测试,有什么问题可以反馈给我,如果EXCEL里面有公式,最好是不要用正则表达式模式,防止把公式也替换了(这个我没仔细测试,你们有时间的可以测试一下)

  • EXCEL起始行和结束行均为-1表示对行不进行任何操作,只要两者大于0,就会进行数据清空,按照excel的行号填入即可,比如3-8行,分别填入3和8即可,如果需要删除行,勾选删除行即可

截图

  • word转pdf

  • pdf转word

excel转pdf

  • word转图片

  • 合并PDF

  • WORD批量内容替换

  • EXCEL批量内容替换

  • twain设备调试

姓名横转竖列排版截图参考

  • 常规排版,带有括号

  • 常规排版带数字

  • 非常规排版,多行竖列排版

下载地址

https://www./s/CRObVv-Vk8eh.html

提取码:zcBq

另外大家评论区说的一些功能,可以描述下自己的需求,比如有提到想pdf转Excel的,我想知道转换的原因是什么,因为这种需求很冷门(对我来说我没有遇到过这种场景) ,我好决定要不要添加

统一反馈下很多人都在反应的PDF转换以后是图片的这个问题:

一般出现这种的都是PDF扫描件会出现,因为PDF扫描件不是传统意义上根本WORD进行格式转换,带着WORD里面的格式、段落、标签等信息的PDF了,扫描仪就可以理解为一台照相机,纸张扫描以后被转换为图片,然后扫描软件将一张张图片插入PDF文件中,这是个人猜测的一个简单过程;那么,对于控件来说,这种PDF没有任何可以提取到的信息,比如文本段落、表格、形状、文本,所以转换以后就是图片,对于扫描件,个人建议使用更专业的软件来进行转换识别;一般从word转换以后的pdf再用小工具转回去的基本没啥问题,能力不足,抱歉啦各位~

最后给也用Aspose控件的大佬们分享下我的设置参数

string DocumentName, SaveDocxName;
//设置加载word文档的时候参数 Aspose.Words.Loading.LoadOptions TempDocuemntLoadOption = new Aspose.Words.Loading.LoadOptions() { ConvertMetafilesToPng = true, MswVersion = Aspose.Words.Settings.MsWordVersion.Word2010, };
//设置PDF保存参数 Aspose.Words.Saving.PdfSaveOptions TempPdfaveOption = new Aspose.Words.Saving.PdfSaveOptions() { FontEmbeddingMode = Aspose.Words.Saving.PdfFontEmbeddingMode.EmbedAll, ImageColorSpaceExportMode = Aspose.Words.Saving.PdfImageColorSpaceExportMode.Auto, ImageCompression = Aspose.Words.Saving.PdfImageCompression.Auto, PageMode = Aspose.Words.Saving.PdfPageMode.UseOutlines, ZoomBehavior = Aspose.Words.Saving.PdfZoomBehavior.None, SaveFormat = Aspose.Words.SaveFormat.Pdf, UseHighQualityRendering = true, };
//设置PDF保存带word中的目录 TempPdfaveOption.OutlineOptions.DefaultBookmarksOutlineLevel = 0; TempPdfaveOption.OutlineOptions.CreateMissingOutlineLevels = false; TempPdfaveOption.OutlineOptions.ExpandedOutlineLevels = 3; TempPdfaveOption.OutlineOptions.HeadingsOutlineLevels = 9; TempPdfaveOption.HeaderFooterBookmarksExportMode = Aspose.Words.Saving.HeaderFooterBookmarksExportMode.All;
//设置Docx保存参数 Aspose.Words.Saving.OoxmlSaveOptions TempDocxSaveOption = new Aspose.Words.Saving.OoxmlSaveOptions() { //Compliance = Aspose.Words.Saving.OoxmlCompliance.Iso29500_2008_Strict, SaveFormat = Aspose.Words.SaveFormat.Docx,
};

不知道重点是不是在MswVersion = Aspose.Words.Settings.MsWordVersion.Word2010参数上,Docx保存参数那块如果Compliance设置了strict,转换出来的pdf在格式上和原本的差别很大

结语

也没啥结语,希望大家不再被批量处理文档所困扰,我的工具不是很好看,用起来也没大佬们的顺手,不过我还是希望可以帮助到你们

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多