我有一个没有macOS驱动程序的Labelprinter(epson TM-C3500)。因此,我想为网络中的macOS用户创建一个文件夹。每当将文件丢入该文件夹时,它就会从Windows服务器上打印出来。打印后,我想将文件移动到其他位置。 我想在python3中写这个。 到目前为止,我的代码:
def process(y,x):
if not isinstance(x, sympy.symbol.Symbol):
raise Exception(str(x) + " should be a sympy symbol")
if not isinstance(y,sympy.function.UndefinedFunction):
raise Exception(str(y) + " should be a sympy function")
import sympy
x = sympy.symbols('x')
y = sympy.Function('y')
process(y,x)
问题在于每个printjob的持续时间都不一样,当我将文件移至早期时,它会使打印过程崩溃。 我查看了诸如 pycups , win32printer 之类的模块,但它们似乎仅支持python2,甚至尝试了在互联网上找到的poweshellscript。这不是最糟糕的主意。但是即使在powershell中,我也不知道如何等待后台处理程序完成对打印文件的文件读取。我也不是Powershell专家。
Powershell:
import shutil
import os
import time
printed = []
while True:
source_dir = os.path.expanduser('~/Documents/Python_Powershell_print/printfolder')
dest_dir = os.path.expanduser('~/Documents/Python_Powershell_print/printed')
if os.listdir(source_dir):
time.sleep(15)
for file in os.listdir(source_dir):
fullpath = os.path.join(source_dir, file)
os.startfile(fullpath,"print")
printed.append(fullpath)
print(printed)
time.sleep(15) #Here we are waiting till the file is printed
shutil.copy(fullpath,dest_dir)
os.remove(os.path.join(source_dir,file))
else:
time.sleep(3)
print(printed)
time.sleep(3)
有人知道吗?