python - 如何在win32api中打印之前设置一个窗口?
问题描述
在win32api中打印之前有什么方法可以带一个设置页面吗?
这是代码:
from tkinter import *
from tkinter import filedialog
from tkinter import messagebox
import win32api
root = Tk()
root.geometry("500x500")
def open_dialog():
dialog = filedialog.askopenfilename(initialdir = "C:/" , filetypes = (("Text Files" , "*.txt") , ("Python Files" , "*.py") , ("html files" , "*.html")))
if dialog != "":
box = messagebox.askyesno("Confirm" , "Are you sure you want to print this file?")
if box == 1:
win32api.ShellExecute(0 , "print" , dialog , None , "." , 0)
my_button = Button(root, text = "Select file to print" , command = open_dialog)
my_button.place(x = 190 , y = 210)
mainloop()
在这里,在我打开一个文件进行打印后,win32api 只是安静地执行它并且不显示任何设置窗口。
我想要的是在打印之前带一个设置窗口,以便我可以根据自己的意愿更改设置。
例如,当我尝试在默认 Windows 记事本中打印文件时,它会显示如下设置窗口:
即使我想带一个这样的设置窗口,以便我可以根据自己的意愿更改设置。
有没有办法在win32api中实现这一点?
如果有人可以帮助我,那就太好了。
编辑:
感谢@Zhu Song - MSFT 的回答。您的回答帮助我带来了我想要的设置窗口,但我在打印文件时遇到了一些问题。
当我尝试打印文本文件时,一切正常,但是我正在打印的文件的路径和当前页码也与作为页眉和页脚的文本一起打印。
这是一张图片:
正如您在此处看到的,顶部和底部有一些我不想打印的不必要的文本。
此外,当我尝试打印 python 文件时,文件内的文本根本没有被打印:
有没有办法解决这些问题?
解决方案
推荐阅读
- reverse-engineering - 在 14 个地址的作弊引擎中找到正确的健康值
- external-data-source - 使用 VBA 代码更新外部数据源链接
- python - Dask:聚合不同数据帧切片并合并在一起的内存有效方式
- javascript - JS回调函数问题?
- java - 为未经授权的用户“加密”或锁定创建的文件的安全方法 - Java
- amazon-web-services - 使用 boto3 创建具有层的 Lambda 函数时出现问题
- php - 我的 Ajax 代码没有刷新我最喜欢的按钮
- php - 在操作 url 获取请求上合并 php arrey
- r - 如何迭代地改变变量值,直到所有预测概率都高于 0.5
- envoyproxy - 如何在 envoyproxy 配置文件中使用环境变量?