优化js代码注入

This commit is contained in:
jianxin committed 2025-04-01 09:21:43 +08:00
1 parent d15e8185bb
commit 6ba9ed637b
3 files changed
+176 -64

No files matched your search

+45 -6
View File
@@ -16,7 +16,7 @@ def get_version():
conn = http.client.HTTPConnection("127.0.0.1", 58890)
conn.request("POST", "/version", body="{}", headers={})
response = conn.getresponse()
data = response.read()
response.read()
conn.close()
return response.status == 200
except:
@@ -27,8 +27,8 @@ def invoke_wps_func(func, args):
# 可能触发是否允许访问
invoke_param = {
"Func": func,
"Args": json.dumps(args),
"method": func,
"args": json.dumps(args),
"AppType": "wps",
}
@@ -74,10 +74,49 @@ def invoke_wps_func(func, args):
if __name__ == "__main__":
start_http_server()
print(get_version())
# print(get_version())
path = r"c:\Users\32075\OneDrive\文档\Code\RPA_Script\wps-js-extension\XbotWps\python\wps.js"
with open(path, "r", encoding="utf8") as f:
code = f.read()
func = "getDocumentName"
func = "evalCode"
args = {"code": "wps.WpsApplication().ActiveDocument.Name"}
func = "inject"
args = {"code": code}
res = invoke_wps_func(func, args)
print(res)
func = "setText"
args = {"text": "123"}
res = invoke_wps_func(func, args)
print(res)
# func = "addPicture"
# image_path = r"C:\Users\32075\Downloads\Snipaste_2024-11-05_12-33-28.png"
# args = {"path": image_path}
# res = invoke_wps_func(func, args)
# print(res)
# func = "replace"
# args = {"text": "1", "replacement": "2", "code": code}
# res = invoke_wps_func(func, args)
# print(res)
# func = "save"
# args = {}
# res = invoke_wps_func(func, args)
# print(res)
# func = "close"
# args = {}
# res = invoke_wps_func(func, args)
# print(res)
# func = "getText"
# args = {}
# res = invoke_wps_func(func, args)
# print(res)
# func = "insertHyperlink"
# args = {"link": "https://www.baidu.com", "text": "百度"}
# res = invoke_wps_func(func, args)
# print(res)
+73 -27
View File
@@ -1,29 +1,75 @@
const wps = {
app: wps.WpsApplication(),
replace: () => {
Selection.SetRange(16, 16);
Selection.Find.Wrap = wdFindContinue;
(obj => {
obj.Text = "1";
obj.Forward = true;
obj.Wrap = wdFindContinue;
obj.MatchCase = false;
obj.MatchByte = true;
obj.MatchWildcards = false;
obj.MatchWholeWord = false;
obj.MatchFuzzy = false;
obj.Replacement.Text = "2";
})(Selection.Find);
(obj => {
obj.Style = "";
obj.Highlight = wdUndefined;
(obj => {
obj.Style = "";
obj.Highlight = wdUndefined;
})(obj.Replacement);
})(Selection.Find);
Selection.Find.Execute(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, wdReplaceAll, undefined, undefined, undefined, undefined);
Selection.Find.Replacement.Text = "2";
}
const wpsInstance = {
app: wps.WpsApplication().Application,
// 启动Word
// Word导出PDF
// 读取Word文本
getText: () => {
const activeDocument = wpsInstance.app.ActiveDocument;
return activeDocument.Content.Text;
},
// 写入文本至Word中
setText: (args) => {
let text = args.text;
const doc = wpsInstance.app.ActiveDocument;
doc.Range(wpsInstance.app.Selection.Start, wpsInstance.app.Selection.End).Text = text;
},
// 定位Word光标
setCursor: (args) => {
const activeDocument = wpsInstance.app.ActiveDocument;
const range = activeDocument.Content;
range.SetRange(args.start, args.end);
},
// 移动Word光标
// 替换Word文本
replace: (args) => {
const text = args.text;
const replacement = args.replacement;
const find = wpsInstance.app.Selection.Find;
const activeDocument = wpsInstance.app.ActiveDocument;
activeDocument.Content.Select();
find.Text = text;
find.MatchByte = false;
find.Replacement.Text = replacement;
find.Execute(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 2, undefined, undefined, undefined, undefined);
},
// 读取Word表格
// 插入Word表格
addTable: (args) => {
const rows = args.rows;
const cols = args.cols;
const doc = wpsInstance.app.ActiveDocument;
const range = wpsInstance.app.Selection.Range;
doc.Tables.Add(range, rows, cols);
},
// 插入图片
addPicture: (args) => {
let path = args.path;
let doc = wpsInstance.app.ActiveDocument;
doc.InlineShapes.AddPicture(FileName = path, Range = wpsInstance.app.Selection.Range);
},
// 插入超链接
insertHyperlink: (args) => {
let link = args.link;
let text = args.text;
let doc = wpsInstance.app.ActiveDocument;
doc.Hyperlinks.Add(wpsInstance.app.Selection.Range, link, undefined, undefined, text, undefined);
},
// 保存Word
save: () => {
wpsInstance.app.ActiveDocument.Save();
},
// 关闭Word
close: () => {
wpsInstance.app.ActiveDocument.Close();
}
}
return wpsInstance;