首页 > 解决方案 > 如何在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 文件时,文件内的文本根本没有被打印:

在此处输入图像描述

有没有办法解决这些问题?

标签: pythonwinapitkinterprinting

解决方案



推荐阅读