40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
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")
|
|
content = pro_dict[id.zfill(6)]["content"]
|
|
latex_raw = ReadTextFile("模板文件/独立文件模板.txt")
|
|
|
|
latexdata = StringSubstitute(r"<<待替换\d*>>",latex_raw,[content])
|
|
makedir("临时文件/pics")
|
|
|
|
|
|
SaveTextFile(latexdata,"临时文件/pics/temp.tex")
|
|
os.system("xelatex -interaction=batchmode -output-directory=临时文件/pics temp.tex")
|
|
os.chdir("临时文件/pics")
|
|
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("图片已导入剪贴板")
|
|
|