From a01c16982af6a2e8586c7769a7dd9a3aa22348de Mon Sep 17 00:00:00 2001 From: zty Date: Tue, 23 Jul 2024 17:18:35 +0800 Subject: [PATCH] fix --- 001.ico | Bin 0 -> 4286 bytes PrintAgent.py | 54 ++++++++++++++++++++++++++---------------------- PrintAgent.spec | 2 +- favicon.ico | Bin 16958 -> 0 bytes printer.log | 9 ++++++++ 5 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 001.ico delete mode 100644 favicon.ico diff --git a/001.ico b/001.ico new file mode 100644 index 0000000000000000000000000000000000000000..fd7f0921813951fe8271bfb4f6e43741a4cb43fe GIT binary patch literal 4286 zcmc&&X>3$g6n^Y3tYt9~i3LGHR4hwCHc<&kqKH5uSTGnCl|2CkBt}qw5cG#=)DonM z2tiR2To7>kWi+S|qzG;4bngr;o#_G;+G#(}cix=oWAX+m{_r+;?t6FpzI(QNULB{E z{H3Nk{B`zpb(~&~;|!E4UCsol?AIb=t5e+Sb~p|^rKzd;B{%yro|sq^@7TM$8e@h8 z@cR04yt<|wi=QpS)6$gzfAWf9yuiz>pOn5 z4tMv-#lrMbZI=n&LnHE$u_cUGUObEU->yVzN;YOsE!OjGdoPTUgY)#cf3F-2zbg+% ze!Zx8y*p*&rR5>vS&XTV6r#AWUSSQ(%fb4N9;w5`2MVzNiyDl*KY&Bu)?)IQ0&IOZ zjMYm+Shk=H!|u!jai5d3?cPzPa)0ZMa~RU^4AT0a!ETY&=ew%W&N+#FpH*X(=)-Zc z@YCV*3Td+T;#*&3MHFw!UexIwJ#$poyFRKyW<~^)Mi;1_XUW-@i2iw|9}b?!==%a# zzv?Xdbk0UM(Z&4Pr8<9L?_AJsD6;{#3e+q8Xuxj*O{o-dfCs4_l(w;thKp~F70H~eEW%OHpL0t!}jxCkff96XQA!V{^@5M z*ZJ2CYs)o0R9Ct3kH*#}+4^6*sRx!&Spx=(Pdd&CwPV_H@_Iu3;gZB3mh0u<#U6B9 zF4~AM_3CgM-P<j$jjvr zXfcO4w!~ffZ(9#GFD zf^m~zc9hyd>Wxwv&lvxBR*sPqTh8^$fgI{$9K1f^rC|L<1@$U(@42~OkM^fE9`@~# zgWJ31;K2Tx_;SX^TRUd!ct06W5qn7FFn(wN<`;f`X!w)I7U+3;3Lejp(&jW;iw)XPlqzS7P4NTBgK?s) z+KUWrt>LFnEAdW`-}19;u${^-VnmYtunr`=GF)XDi;*XI3nZ#;}&NpZdAZfXM}1Mbt(^T+K^{E+v~)qKbB zn_P;RB>5U+63?yn*8=%7*Cg*||2w7ef2R093-jtkAK5E^vL%y{kIO9zTEY`jKIA zt+!Zz=GKVDTLQ4mV5i1-OIu5$Q|1v zs(0Nd#=-IoH=bwV;gR_mF)&Z%<;_iO4SDcRWRA|_%|pGIiO>_3KlzbSbq_*ITEPuVMcS!}KC<=5K(0sgP{ E9|D4>+5i9m literal 0 HcmV?d00001 diff --git a/PrintAgent.py b/PrintAgent.py index 0182c8c..4a960e5 100644 --- a/PrintAgent.py +++ b/PrintAgent.py @@ -86,7 +86,7 @@ class SnPost: return menu = (MenuItem('退出', self.close), MenuItem('查看日志', self.log)) - image = Image.open("favicon.ico") + image = Image.open("001.ico") title = "打印机" self.icon = pystray.Icon(title, image, "打印机", menu) threading.Thread(target=self.icon.run, daemon=True).start() @@ -96,12 +96,11 @@ class SnPost: def pdf_printer(): if request.method == 'OPTIONS': # 跨域请求预检 return jsonify({"message": "OK"}), 200 - # if 'file' not in request.files: - # return jsonify({"error_message": "No file part", "error_code": 400}), 400 file = request.files['file'] printer_name = request.form.get('printer_name', None) # Save the file temporarily temp_pdf_path = os.path.join(os.path.dirname(__file__), 'temp_pdf.pdf') + logger.info(f"Saving file to {temp_pdf_path}") try: # Read the PDF binary @@ -109,7 +108,8 @@ def pdf_printer(): if printer_name: win32print.OpenPrinter(printer_name) win32print.SetDefaultPrinter(printer_name) - win32print.GetDefaultPrinter() + else: + return jsonify({"error_message": "打印机名称不正确","error_code": "printer_name_error"}), 400 win32api.ShellExecute( 0, @@ -121,6 +121,7 @@ def pdf_printer(): ) except Exception as e: import traceback + logger.error(traceback.format_exc()) print(traceback.format_exc()) return jsonify({"error_message": str(e), "error_code": "print_failed"}), 500 finally: @@ -145,32 +146,35 @@ def save_pdf_from_binary(pdf_binary, file_path): def str_printer(): if request.method == 'OPTIONS': # 跨域请求预检 return jsonify({"message": "OK"}), 200 - print_commands = request.json.get('print_commands', None) - print_name = request.json.get('print_name', None) - print(print_commands) + print_commands = request.json.get('printer_commands', None) + print_name = request.json.get('printer_name', None) tsclibrary = ctypes.WinDLL(".//TSCLIB.dll") if print_name: + logger.info("打印机名称: %s", print_name) tsclibrary.openportW(print_name) else: - print_name = win32print.GetDefaultPrinter() - tsclibrary.openportW(print_name) + logger.error("打印机名称无效") + return jsonify({"error_message": "打印机名称无线","error_code": "printer_name_error"}), 400 tsclibrary.clearbuffer() - for item in print_commands: - if 'WINTEXT' in item: - item_list = item.replace('WINTEXT ', '').split(',') - tsclibrary.windowsfontW( - item_list[0], - item_list[1], - item_list[2], - item_list[3], - item_list[4], - item_list[5], - item_list[6], - item_list[7]) - else: - tsclibrary.sendcommandW(item) - print(item, "33333") - tsclibrary.closeport() + try: + for item in print_commands: + if 'WINTEXT' in item: + item_list = item.replace('WINTEXT ', '').split(',') + tsclibrary.windowsfontW( + item_list[0], + item_list[1], + item_list[2], + item_list[3], + item_list[4], + item_list[5], + item_list[6], + item_list[7]) + else: + tsclibrary.sendcommandW(item) + tsclibrary.closeport() + except Exception as e: + print(e) + logger.error("打印错误: %s", str(e)) return jsonify({}), 200 diff --git a/PrintAgent.spec b/PrintAgent.spec index 5c9adfe..8776e29 100644 --- a/PrintAgent.spec +++ b/PrintAgent.spec @@ -29,7 +29,7 @@ exe = EXE( upx=True, upx_exclude=[], runtime_tmpdir=None, - console=True, + console=False, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index f6f458e70a9f90219b662ed912b52d8cc9fbe3f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 zcmeI2O^6gn6vu0`;)sNuAREF!xDA|Zqj zBzTY@9vlxj1Q7`mBxEFrNXQ{95`xH1T!MrUToG|4YWw^5OwD%B^mJ8sdUZd#mbb6# z)vJHKS0AscYucCr{zgX)|2Lbh?;5kt7_${ZWNMJ)VH$0*@_*R_We=1+Q1(E!9+*C7 z%yiwXf{R|tR=dA8SSz5F;{CP!OJtkyZnrS~D<)`yW1wBoY3L8=9(4b9-Auv1r9bw< zGuus_)zGKV&(J^6UFdJ&`2WtnU{!7DsNcor0kP8wwka^cu=`II_Vly8SLe{3Buj_*$(*^`)%54G2g7ha_O z>q&r=?}MI1^n7vE|2z9&zCzhl4ous&#$tCLY|Uq@mxUki#sg<3ef=mWp4!$th^+>W|8_8z2IoYZy}*-ueiY*dWQGoQNK)Y^%~E%JwR z+N)R|+iS^><;3c?^Q!e9JdM3itnbE1%71Qg#f44Z{*u$?uVYwsGsO67UrTB?tL%M? z4c;425o51?YlFoVC%--~HvPsM?OX!qAe7b59({1NUv}md&tDaR3&!a=Yg-sd)4zeWh4=0=f_dBd>SF`%pi> zeB~#)aJBaJ{^eW0M-Q7Ni_KNr26DaE+A-~^8)r%pY5f8B2L;>-o@Piggi%5*l} z9L2@<4UC&lU8|%0P4hY0XE(_wz5^p)+wLD*KZ(n(*j$g=sAn)fLMN$ivaBA?xk>u1 zbLIqt9VDKRjb^~Tg6;+|wH7t5hp8{y55!UDa+Ga^l5K3u!O&SeHBp`=Mrr-579e~r zbQaPa9PVxe*~d_-ePMas+`-OR+#oOf{ZQCeH+H*yr~lNSN~#-`p>rB?+KEk<(CeIQ z+BRs7AJVvWCuF{R%2;<@pFHgr<^T6S{-cxlUfa)B^u69m>DMj&Fw*1&`hU&kKQ>M$ zjd7ZN#J+D_xRmRCBUhqcQR9EZWhcIz&uS!?iVd!H^=npKt6!l1w><2O?d{fvG|rqk z=Ybo$CrHEVE-TRgDGxi3cen4#d-{LHh10LRDF2z;KI0#|cj#wRRF417eFdG#Xq_z2 zh564tzQ_2V$zq#y@l9t1*ZS8PD)D^hYOg5&!SRXziTA{5HiA12x%^l8J83xm%BWXV z{J-d7r+$NoozeQ)W#z0Z-J$#VAG?dN^U1x6etYPG@d*TM@Dh|jF-4_je(jN3&{!e>g z`JU6&mhQLoULrg7j&=_oz&rQ7cFd6LULh=(&Jw4q_}7z=>AiNT`yTqo9PWwZ_#i@?-?FalnxoqY@-8>`?=rhqy!gqc1 zpt-Ts$KJ-lV;$#tXy0iT@jJj`=|8Ra*qM-gQNRB$mOeNbn*;0%^nuTP*kbX|W#`SP z|9U1a4ABQgd|Tpbdm)sMcl#gq0sABSL6&dd7J@HXZTNz5j{Qy$?F-8Ed)pM06?b9l zxAwkI@XMLdSp(^QY$@!E@{T1GoSl~o;dv64V|Y3OaII9XWhB>gmV7R)B1bSu;uzM*MGVG%lPM* z17-Yw(SdrN+Arh(!jAtz*3<}sN-#4Ln32aOXjGq?O|xdAR(WiyGiJmL&YDV-ufPXp z%wW?THOBI$8Elv_Gte}ZhM6@34RHz^rdqR{N(eXAq*Q~y8uF3aNK;B}UY#I6c&4@~ zsEsr#{1dNYPCjnyxA3Y#$eWd^8joQ+t#v{BVX_=M!(=&rgbAm^gbOV`6X&?zl0R