Python我想从打印机打印文本,但我想在纸的中间



从标题中可以理解,我想从打印机打印一个.txt文件,使其位于页面中间。我知道这在win32printer库中是可能的,但当我阅读文档时,我找不到它的确切设置,即哪些边距值​​能帮我把文本准确居中吗?或者我的平均值有预设设置吗?


from win32printing import Printer
with Printer(linegap=1) as printer:
printer.text("title1", font_config=font)

我试着用边距设置,但找不到准确的解决方案

使用实际的win32打印,您可以使用属性"对齐";至";"左"右";以及";"中心";,参见下一个例子";

from win32printing import Printer
font= {
"height": 35,
"faceName":'Consolas',
}
with Printer(linegap=1,margin=(200,250,50,0), auto_page=True) as printer:
printer.text("title1", font_config=font, align='left')

现在,当您需要垂直中心时,您必须编辑文件win32printing.py,因为它没有定义(请参阅其定义(。

在该文件中,有一个名为"的类;get_print_flag";。请按如下方式编辑(更多信息https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-drawtext):

@classmethod
def get_print_flag(cls, align="left"):
print_flag = win32con.DT_TOP|win32con.DT_WORDBREAK|win32con.DT_NOCLIP
if align == "left":
print_flag |= win32con.DT_LEFT
#Add this line to have left-center option        
elif align == "left-center":
print_flag |= win32con.DT_LEFT|win32con.DT_SINGLELINE|win32con.DT_VCENTER
elif align == "center":
print_flag |= win32con.DT_CENTER
elif align == "right":
print_flag |= win32con.DT_RIGHT
return print_flag

最新更新