gpt4 book ai didi

python - 使用 win32 和 python 直接打印时隐藏文本文件的页眉和页脚

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:55 25 4
gpt4 key购买 nike

使用此代码直接打印到文本文件时,我被困在这里

win32api.ShellExecute (0, "print", "datafile.txt", None, ".", 0)

它总是打印页眉“datafile.txt”和页脚“Page1”。在连续格式纸上打印时,我想隐藏或删除它。我不想安装其他第三方软件。请帮我。谢谢。

最佳答案

我敢肯定,您只需进行简单的搜索,就可以找到一个比这个hack 更好地处理这个问题的模块(例如,使用 Reportlab 和 ShellExecute PDF)。此外,Windows 上用于打印文本文件的默认应用程序是记事本。如果您希望永久配置页眉/页脚设置,只需在"file"->“页面设置”中进行更改。

如果您希望在您的程序中更改记事本的设置,您可以使用 winreg 模块(Python 2 中的 _winreg)。但是,存在时间问题,因为 ShellExecute 不会等待作业排队。在恢复旧设置之前,您可以休眠一会儿或等待用户 input 继续。这是一个演示该过程的快速函数:

try:
import winreg
except:
import _winreg as winreg
import win32api

def notepad_print(textfile, newset=None):
if newset is not None:
oldset = {}
hkcu = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)
notepad = winreg.OpenKey(hkcu, r'Software\Microsoft\Notepad', 0,
winreg.KEY_ALL_ACCESS)
for key, item in newset.items():
oldset[key] = winreg.QueryValueEx(notepad, key)
winreg.SetValueEx(notepad, key, None, item[1], item[0])

#force printing with notepad, instead of using the 'print' verb
win32api.ShellExecute(0, 'open', 'notepad.exe', '/p ' + textfile, '.', 0)

input('once the job is queued, hit <enter> to continue')

if newset is not None:
for key, item in oldset.items():
winreg.SetValueEx(notepad, key, None, item[1], item[0])

您可以通过以下调用暂时删除页眉/页脚设置:

notepad_print('datafile.txt', {'szHeader' : ('', 1), 'szTrailer': ('', 1)})

您可以根据需要更改任意多个注册表设置:

newset = {
#name : (value, type)
'lfFaceName': ('Courier New', 1),
'lfWeight': (700, 4), #400=normal, 700=bold
'lfUnderline': (0, 4),
'lfItalic': (1, 4), #0=disabled, 1=enabled
'lfStrikeOut': (0, 4),
'iPointSize': (160, 4), #160 = 16pt
'iMarginBottom': (1000, 4), #1 inch
'iMarginTop': (1000, 4),
'iMarginLeft': (750, 4),
'iMarginRight': (750, 4),
'szHeader': ('&f', 1), #header '&f'=filename
'szTrailer': ('Page &p', 1), #footer '&p'=page number
}

notepad_print('datafile.txt', newset)

关于python - 使用 win32 和 python 直接打印时隐藏文本文件的页眉和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com