当前位置: 首页 > news >正文

处理知识库文件_编写powershell脚本文件_批量转换其他格式文件到pdf文件---人工智能工作笔记0249

   最近在做部门知识库,选用的dify,作为rag的工具,但是经过多个对比,最后发现,

比较好用的是,纳米搜索,但是可惜纳米搜索无法在内网使用,无法把知识库放到本地,导致

有信息安全问题无法使用。

    再则,知识库文件导入的时候,测试发现excel文件,直接导入,不如直接转换成pdf文件导入效果要好,纳米搜索对文档的解析,效果更好一些。但是转换pdf文件,如果使用微软的excel,效果不好,只能转换当前页,使用wps效果很好,可以转换所有页,但是,一个一个的去转换效果太慢了。所以自己就做了一个批量,把excel文件转换为pdf的脚本,其实就是一个powershell的脚本文件,直接右键运行就可以了。运行之前,先打开一个excel文件,待处理的。

    然后等待脚本自动处理就可以了。

# 利用wps自动保存为pdf
# 做知识库用,知识库中对pdf的支持会更好一些。AutoKeyPress.ps1
Add-Type -TypeDefinition @'
using System;
using System.Runtime.InteropServices;# Mouse鼠标操作
public class MouseAction {[DllImport("user32.dll")]public static extern bool SetCursorPos(int X, int Y);[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, UIntPtr dwExtraInfo);private const uint MOUSEEVENTF_LEFTDOWN = 0x02;private const uint MOUSEEVENTF_LEFTUP = 0x04;private const uint MOUSEEVENTF_RIGHTDOWN = 0x08;private const uint MOUSEEVENTF_RIGHTUP = 0x10;public static void LeftClick() {mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero);}public static void RightClick() {mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, UIntPtr.Zero);}public static void LeftClickAt(int x, int y) {SetCursorPos(x, y);mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero);}public static void RightClickAt(int x, int y) {SetCursorPos(x, y);mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, UIntPtr.Zero);}
}
'@$WShell = New-Object -ComObject wscript.shellwhile($true) {Start-Sleep -Seconds 4# Alt+F  先打开一个文件excel,然后,在文件列表选中最后一个,他会一个个向上处理# 打开文件以后,首先按下alt+f 打开文件 菜单$WShell.SendKeys("%f")Start-Sleep -Seconds 2# A 按下A,选中另存为$WShell.SendKeys("a")Start-Sleep -Seconds 1# M 按下M,打开另存为的窗口$WShell.SendKeys("m")Start-Sleep -Seconds 1# Tab 然后tab选中要保存的格式选项$WShell.SendKeys("{TAB}")Start-Sleep -Seconds 1# End 找到pdf格式$WShell.SendKeys("{END}")Start-Sleep -Seconds 1# Alt+S 保存pdf文件开始$WShell.SendKeys("%s")Start-Sleep -Seconds 6# Enter 关闭 pdf保存完成窗口 保存以后关闭pdf窗口$WShell.SendKeys("{ENTER}")Start-Sleep -Seconds 1#关闭当前文档 处理以后 关闭当前文档$WShell.SendKeys("^w")Start-Sleep -Seconds 1#然后按下n,关闭当前文档$WShell.SendKeys("n")Start-Sleep -Seconds 1# Alt+Tab# 然后按下alt+tab这个不用了,之前用的#$WShell.SendKeys("%{TAB}")#Start-Sleep -Seconds 3#然后打开运行窗口# 创建 Shell.Application 对象并调用 FileRun 方法# 这里是打开运行,运行中注意,默认要显示需要打开的文件夹$shell = New-Object -ComObject "Shell.Application"$shell.FileRun()Start-Sleep -Seconds 1#这里就打开对应的运行显示的文件夹 运行中要提前把对应的文件夹路径贴里面去$WShell.SendKeys("{ENTER}")Start-Sleep -Seconds 1#按下鼠标左键,选中当前的文件# 左键单击当前位置#[MouseAction]::LeftClick()# 发送Alt+D(定位到地址栏)#这个是为了定位到文件列表 $wshell.SendKeys("%d")Start-Sleep -Milliseconds 200# 发送3次Tab键(切换到文件列表)$wshell.SendKeys("{TAB}")Start-Sleep -Milliseconds 100$wshell.SendKeys("{TAB}")Start-Sleep -Milliseconds 100$wshell.SendKeys("{TAB}")#向上选择 处理下一个文件# Up Arrow$WShell.SendKeys("{UP}")Start-Sleep -Seconds 2#按下enter打开下一个文件# Enter$WShell.SendKeys("{ENTER}")# 停顿2秒Start-Sleep -Seconds 2
}

相关文章:

  • PHP 垃圾回收高级特性
  • dockers搭建mysql环境
  • 解决Docker存储空间不足问题
  • Redis 数据恢复的月光宝盒,闪回到任意指定时间
  • powershell 中 invoke-expression 报错解决
  • 机器视觉运动控制一体机在背靠背点胶焊锡机上的应用
  • ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程
  • Apache SeaTunnel部署技术详解:模式选择、技巧与最佳实践
  • 数学建模之最短路径问题
  • 历年南京大学计算机保研上机真题
  • 应用系统适配瀚高报错:字段为numeric,但是表达式为varchar(APP)
  • LearnOpenGL-笔记-其十一
  • Ubuntu开机自动运行Docker容器中的Qt UI程序
  • Prometheus安装及使用(二进制方式)
  • ansible-playbook 进阶 接上一章内容
  • pikachu通关教程-目录遍历漏洞(../../)
  • 【AI-安装指南】Redis Stack 的安装与使用
  • LNMP环境中php7.2升级到php7.4
  • [JVM] JVM内存调优
  • SQL面试提问 :如何计算每个月的订单数量和总金额以及与上个月相比的环比增长率
  • avada主题做网站/河北百度推广电话
  • 九台市做网站的公司/网络营销ppt模板
  • jsp和php哪个做网站快/百度竞价排名广告
  • 专业仿站网站建设/惠州seo关键词推广
  • 小企业网站建设多少钱/青岛网站制作
  • 做网站用什么电脑配置/怎么用网络推广业务