使用 win32 和 python 直接打印时隐藏文本文件上的页眉和页脚
当使用此代码直接打印到文本文件时,我被困在这里,
win32api.ShellExecute (0, "print", "datafile.txt", None, ".", 0)
它总是打印标题“datafile.txt”和页脚“Page1”。我想在连续表格纸上打印时隐藏或删除它。我不想安装其他第三方软件。请帮我。谢谢。
I am stuck here when printing directly to text files using this code
win32api.ShellExecute (0, "print", "datafile.txt", None, ".", 0)
it always print the header "datafile.txt" and footer "Page1". I want to hide or remove this when printing on continous form paper. I do not want to install another third party software. Please help me. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信您只需进行简单的搜索,就可以找到一个比这个hack更好地处理这个问题的模块(例如使用 Reportlab 和 ShellExecute the PDF)。此外,Windows 上打印文本文件的默认应用程序是记事本。如果您想永久配置页眉/页脚设置,只需在“文件”->“页面设置”中更改即可。
如果您希望更改程序中记事本的设置,可以使用 winreg 模块(Python 2 中的
_winreg
)。但是,由于 ShellExecute 不会等待作业排队,因此存在计时问题。在恢复旧设置之前,您可以休眠一会儿或等待用户输入
继续。下面是一个演示该过程的快速函数:您可以通过以下调用临时删除页眉/页脚设置:
您可以根据需要更改其注册表设置:
I'm sure you're just a simple search away from finding a module that will handle this problem much better than this hack (e.g. use Reportlab and ShellExecute the PDF). Also, the default application for printing text files on Windows is Notepad. If you wish to configure the header/footer setting permanently, just change it in File->Page Setup.
If you wish to change Notepad's settings in your program, you can use the winreg module (
_winreg
in Python 2). However, there's a timing issue since ShellExecute doesn't wait for the job to be queued. Before restoring the old setting, you can either sleep for a little while or just wait for userinput
to continue. Here's a quick function that demonstrates the process:You can temporarily delete the header/footer settings with the following call:
You can change as many of its registry settings as you want:
使用这种方法似乎可以给程序员更多的控制权,当然也不会' t 在没有明确声明的情况下插入页眉和页脚。
Using this method seems to give more control to the programmer and certainly doesn't insert headers and foots without explicit statements.