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

处理知识库文件_编写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
}

http://www.lryc.cn/news/2396607.html

相关文章:

  • rtpmixsound:实现音频混音攻击!全参数详细教程!Kali Linux教程!
  • 【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder
  • stm与51单片机哪个更适合新手学
  • 【计算机网络】第3章:传输层—面向连接的传输:TCP
  • 从架构视角设计统一网络请求体系 —— 基于 uni-app 的前后端通信模型
  • 《信号与系统》--期末总结V1.0
  • 第32次CCF计算机软件能力认证-2-因子化简
  • mac笔记本如何快捷键截图后自动复制到粘贴板
  • 高考加油!UI界面生成器!
  • window ollama部署模型
  • 用mediamtx搭建简易rtmp,rtsp视频服务器
  • ubuntu安装devkitPro
  • Linux(10)——第二个小程序(自制shell)
  • github actions入门指南
  • 代码随想录算法训练营 Day59 图论Ⅸ dijkstra优化版 bellman_ford
  • HTML实战:响应式个人资料页面
  • Mac电脑上本地安装 MySQL并配置开启自启完整流程
  • JavaSE:面向对象进阶之内部类(Inner Class)
  • 【HW系列】—安全设备介绍(开源蜜罐的安装以及使用指南)
  • 汽车总线分析总结(CAN、LIN、FlexRay、MOST、车载以太网)
  • MyBatisPlus--条件构造器及自定义SQL详解
  • OVD开放词汇检测 Detic 训练COCO数据集实践
  • docker、ctr、crictl命令简介与使用
  • WEB安全--SQL注入--bypass技巧2
  • 【强化学习哲学 Day 1】Q-Learning - 在不确定中寻找确定
  • WEB3——什么是ABI
  • 嵌入式软件--stm32 DAY 8.5 基础复习总结
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • 贪心算法求解汽车加油问题
  • JVM Full GC 频繁问题排查、优化及解决方案