ÀÓÆ÷Æ® ½ÃÄÑ¾ß ÇÏ´Â ¶óÀ̺귯¸®
¡¼Çü½Ä¡½
import
win32api
import
win32print
import
tempfile
PyWin32 ¼Ò°³
PyWin32´Â À©µµ¿ì API »ç¿ëÀ» À§ÇÑ ÆÄÀ̽ã È®Àå (Python extensions for Windows)À¸·Î¼
PyWin32¸¦ ÀÌ¿ëÇØ¼ Win32 API (application programming interface)ÀÇ ±â´ÉµéÀ» ÆÄÀ̽㿡¼
»ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
pip install pywin32
¸í·ÉÇÁ·ÒÇÁÆ®¿¡¼ À§ÀÇ ¸í·É¾î¸¦ ÅëÇØ PyWin32¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
C:\Users\mail2\AppData\Local\Programs\Python\Python38\Scripts>pip
install pywin32
Collecting pywin32
Downloading
pywin32-306-cp38-cp38-win_amd64.whl (9.4 MB)
|████████████████████████████████| 9.4 MB 6.4 MB/s
Installing collected packages: pywin32
Successfully installed pywin32-306
WARNING: You are using pip version 20.2.1; however, version 23.1 is
available.
You should consider upgrading via the
'c:\users\mail2\appdata\local\programs\python\python38\python.exe -m pip
install --upgrade pip' command.
python.exe -m pip install --upgrade pip
¼³Ä¡ÇÑ ÈÄ¿¡ ÆÄÀ̽ãÀ» Àç
½ÇÇàÇÏ¿©¾ß ÇÕ´Ï´Ù. ÇöÀç Äڵ尡
¿¾î ÀÖ´Â »óÅ¿¡¼
Àç ½ÇÇàÇÏ¸é ¼³Ä¡ÇÑ
api°¡ import°¡ µÇÁö ¾Ê½À´Ï´Ù.
¿î¿µÃ¼Á¦¿¡ ¼³Á¤µÇ¾î ÀÖ´Â ±âº»ÇÁ¸°Å͸¦
°¡Á®¿È
¡¼Çü½Ä¡½
ÇÁ¸°Åͺ¯¼ö¸í=win32print.GetDefaultPrinter()
¡¼¿¹Á¦¡½
defaultPrinter=win32print.GetDefaultPrinter()
¡¼Çü½Ä¡½
ÆÄÀϺ¯¼ö = tempfile.mktemp(".txt")
¡¼¿¹Á¦¡½
filename = tempfile.mktemp(".txt")
¡¼Çü½Ä¡½
open(ÆÄÀϺ¯¼ö¸í, "w").write(º¯¼ö)
¡¼¿¹Á¦¡½
open(filename, "w").write(fileData)
ÆÄÀÏÀ» ¿ ¶§, ÇѱÛÄڵ带 ÁöÁ¤ÇÏÁö
¾Ê´õ¶ó°í ÇѱÛÀÌ Ãâ·ÂµË´Ï´Ù.
¿î¿µÃ¼Á¦ ¸í·ÉÀ» »ç¿ëÇÏ¿© ÆÄÀÏÀ»
ÇÁ¸°ÅÍ¿¡ ÇÁ¸°Æ®
¡¼Çü½Ä¡½
win32api.ShellExecute(0,
"print", ÆÄÀϸí,
'"%s"' % ÇÁ¸°ÅÍÀ̸§,".",
0)
¡¼¿¹Á¦¡½
win32api.ShellExecute(0, "print", filename,
'"%s"' % defaultPrinter,".", 0)
¡¼Àüü
¿¹Á¦¡½
def doPrint():
defaultPrinter=win32print.GetDefaultPrinter()
fileData=contentText.get(1.0,'end')
filename =
tempfile.mktemp(".txt")
open(filename, "w").write(fileData)
win32api.ShellExecute(0, "print", filename,
'"%s"' % defaultPrinter,".", 0)
#File Name: Notepad_06.py
import tkinter as tk
from tkinter import Menu
import tkinter.filedialog
import os
import win32api
import win32print
import tempfile
def doFileNew():
mainWin.title("Á¦¸ñ ¾øÀ½ - Windows ¸Þ¸ðÀå")
contentText.delete(1.0, 'end')
def doFileOpen():
myFileName
= tk.filedialog.askopenfilename(initialdir="/",
title="ÆÄÀÏ ¿±â", filetypes=(("Text
Files","*.txt"), ("All Files", "**")))
if
myFileName:
inFile=open(myFileName,'r',encoding='utf-8')
fileData=inFile.read()
contentText.insert(1.0, fileData)
inFile.close()
fileName=os.path.basename(myFileName)
mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")
def doFileSave():
if myFileName==None:
myFileName = tk.filedialog.asksaveasfilename(initialdir="/",
title="ÀúÀå", filetypes=(("Text
Files","*.txt"), ("All Files", "*.*")))
outFile=open(myFileName,'w',encoding='utf-8')
fileData=contentText.get(1.0,'end')
outFile.write(fileData)
outFile.close()
else :
outFile=open(myFileName,'w',encoding='utf-8')
fileData=contentText.get(1.0,'end')
outFile.write(fileData)
outFile.close()
fileName=os.path.basename(myFileName)
mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")
def doFileAsSave():
myFileName
= tk.filedialog.asksaveasfilename(initialdir="/",
title="´Ù¸¥ À̸§À¸·Î ÀúÀå", filetypes=(("Text
Files","*.txt"), ("All Files", "*.*")))
if
myFileName:
outFile=open(myFileName,'w',encoding='utf-8')
fileData=contentText.get(1.0,'end')
outFile.write(fileData)
outFile.close()
fileName=os.path.basename(myFileName)
mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")
def doPrint():
defaultPrinter=win32print.GetDefaultPrinter()
fileData=contentText.get(1.0,'end')
filename =
tempfile.mktemp(".txt")
open(filename, "w").write(fileData)
win32api.ShellExecute(0, "print", filename,
'"%s"' % defaultPrinter,".", 0)
# Create instance of Window
mainWin=tk.Tk()
# Set title and size
mainWin.title("Á¦¸ñ ¾øÀ½ - Windows ¸Þ¸ðÀå")
mainWin.geometry("640x480")
#Creating a Menu Bar
menuBar=tk.Menu(mainWin)
mainWin.config(menu=menuBar)
menuFile=tk.Menu(menuBar, tearoff=0)
menuBar.add_cascade(label="ÆÄÀÏ(F)",
menu=menuFile)
menuFile.add_command(label="»õ·Î ¸¸µé±â(N)",
accelerator="Ctrl+N", command=doFileNew)
menuFile.add_command(label="ț ̢(W)",
accelerator="Ctrl+Shift+N")
menuFile.add_command(label="¿±â(O)...",
accelerator="Ctrl+O", command=doFileOpen)
menuFile.add_command(label="ÀúÀå(S)",
accelerator="Ctrl+S", command=doFileAsSave)
menuFile.add_command(label="´Ù¸¥ À̸§À¸·Î ÀúÀå(A)...",
accelerator="Ctrl+Shift+S", command=doFileAsSave)
menuFile.add_separator()
menuFile.add_command(label="ÆäÀÌÁö ¼³Á¤(U)...")
menuFile.add_command(label="Àμâ(P)...",
accelerator="Ctrl+P", command=doPrint)
menuFile.add_separator()
menuFile.add_command(label="³¡³»±â(X)",
command=mainWin.destroy)
menuEdit=tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label="ÆíÁý(E)",
menu=menuEdit)
menuEdit.add_command(label="½ÇÇà Ãë¼Ò(U)",
accelerator="Ctrl+Z")
menuEdit.add_command(label="Àß¶ó³»±â(T)",
accelerator="Ctrl+X")
menuEdit.add_command(label="º¹»ç(C)",
accelerator="Ctrl+C")
menuEdit.add_command(label="ºÙ¿©³Ö±â(P)",
accelerator="Ctrl+C")
menuEdit.add_command(label="»èÁ¦(L)",
accelerator="Del", compound="left", underline=0)
menuEdit.add_separator()
menuEdit.add_command(label="BingÀ¸·Î °Ë»ö(S)",
accelerator="Ctrl+E")
menuEdit.add_command(label="ã±â(F)",
accelerator="Ctrl+F", compound="left")
menuEdit.add_command(label="´ÙÀ½ ã±â(N)",
accelerator="F3", compound="left")
menuEdit.add_command(label="ÀÌÀü ã±â(V)",
accelerator="Shift+F3")
menuEdit.add_command(label="¹Ù²Ù±â(R)",
accelerator="Ctrl+H")
menuEdit.add_command(label="À̵¿(G)...",
accelerator="Ctrl+G")
menuEdit.add_separator()
menuEdit.add_command(label="¸ðµÎ ¼±ÅÃ(A)...",
accelerator="Ctrl+A")
menuEdit.add_command(label="½Ã°£/³¯Â¥(D)...", accelerator="F5")
menuFormat=tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label="¼½Ä(O)",
menu=menuFormat)
#menuFormat.add_command(label="ÀÚµ¿ ÁÙ ¹Ù²Þ(W)")
show_LineFeed=tk.BooleanVar()
menuFormat.add_checkbutton(label="ÀÚµ¿ ÁÙ ¹Ù²Þ(W)", variable=show_LineFeed)
menuFormat.add_command(label="±Û²Ã(F)...")
menuView=tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label="º¸±â(V)",
menu=menuView)
menuEnlarge=tk.Menu(menuBar,tearoff=0)
menuView.add_cascade(label="È®´ëÇϱâ/Ãà¼ÒÇϱâ", menu=menuEnlarge)
menuEnlarge.add_command(label="È®´ë(I)",
accelerator="Ctrl+´õÇϱâ")
menuEnlarge.add_command(label="Ãà¼Ò(O)",
accelerator="Ctrl+»©±â")
menuEnlarge.add_command(label="È®´ëÇϱâ/Ãà¼ÒÇϱâ
±âº»°ª º¹¿ø", accelerator="Ctrl+0")
#menuView.add_command(label="»óÅÂÇ¥½ÃÁÙ(S)")
show_StatusBar=tk.BooleanVar()
menuView.add_checkbutton(label="»óÅÂÇ¥½ÃÁÙ(S)",variable=show_StatusBar)
menuHelp=tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label="µµ¿ò¸»(H)",
menu=menuHelp)
menuHelp.add_command(label="µµ¿ò¸» º¸±â(H)")
menuHelp.add_command(label="Çǵå¹é º¸³»±â(F)")
menuHelp.add_separator()
menuHelp.add_command(label="¸Þ¸ðÀå Á¤º¸(A)")
#Text Box with scrollbar
contentText=tk.Text(mainWin, wrap='word')
contentText.pack(expand='yes', fill='both')
scrollBar=tk.Scrollbar(contentText)
contentText.configure(yscrollcommand=scrollBar.set)
scrollBar.config(command=contentText.yview)
scrollBar.pack(side='right', fill='y')
# Start Window
mainWin.mainloop()