完成 单一题目转成图片文件 功能

This commit is contained in:
weiye.wang 2024-02-20 18:44:42 +08:00
parent 6a58c745ff
commit 8893c4e927
3 changed files with 31 additions and 2 deletions

View File

@ -1,7 +1,16 @@
id = "2024"
from database_tools import * from database_tools import *
from io import BytesIO
from PIL import Image
import win32clipboard
def send_to_clipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
configjson = load_dict("文本文件/config.json")["单一题目转成图片文件.py"]
id = configjson["题号"]
pro_dict = load_dict("../题库0.3/Problems.json") pro_dict = load_dict("../题库0.3/Problems.json")
content = pro_dict[id.zfill(6)]["content"] content = pro_dict[id.zfill(6)]["content"]
latex_raw = ReadTextFile("模板文件/独立文件模板.txt") latex_raw = ReadTextFile("模板文件/独立文件模板.txt")
@ -16,4 +25,17 @@ SaveTextFile(latexdata,"临时文件/pics/temp.tex")
os.system("xelatex -interaction=batchmode -output-directory=临时文件/pics temp.tex") os.system("xelatex -interaction=batchmode -output-directory=临时文件/pics temp.tex")
os.chdir("临时文件/pics") os.chdir("临时文件/pics")
os.system("pdftocairo temp.pdf -png -r 600") os.system("pdftocairo temp.pdf -png -r 600")
os.chdir("../..")
if not configjson["导入到剪贴板"]:
print("图片在 临时文件/pics/temp-1.png 处.")
else:
filepath = r"临时文件/pics/temp-1.png"
image = Image.open(filepath)
output = BytesIO()
image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
send_to_clipboard(win32clipboard.CF_DIB, data)
print("图片已导入剪贴板")

View File

@ -120,6 +120,8 @@ UseMenu.add_command(label = "文件夹题号清点", command = lambda: SetButton
UseMenu.add_command(label = "参考答案生成", command = lambda: SetButton("参考答案生成",["参考答案生成.py"])) UseMenu.add_command(label = "参考答案生成", command = lambda: SetButton("参考答案生成",["参考答案生成.py"]))
UseMenu.add_separator() UseMenu.add_separator()
UseMenu.add_command(label = "文件题号提取", command = lambda: SetButton("文件题号提取",["文件题号提取.py"])) UseMenu.add_command(label = "文件题号提取", command = lambda: SetButton("文件题号提取",["文件题号提取.py"]))
UseMenu.add_separator()
UseMenu.add_command(label = "单一题目转成图片文件", command = lambda: SetButton("单一题目转成图片文件",["单一题目转成图片文件.py"]))

View File

@ -87,5 +87,10 @@
"在.tex或.pdf文件中获取题号.py": { "在.tex或.pdf文件中获取题号.py": {
"文件路径": "d:/temp/testblocks.tex", "文件路径": "d:/temp/testblocks.tex",
"输出路径": "临时文件/题号列表.txt" "输出路径": "临时文件/题号列表.txt"
},
"单一题目转成图片文件.py": {
"题号" : "20351",
"导入到剪贴板": true,
"说明": "如果导入到剪贴板设置为true, 图像会直接导入到剪贴板, 否则到临时文件/pics里去找temp-1.png"
} }
} }