【Pythonで時短!】初心者でも簡単!印刷を自動化して業務効率化

この記事で分かること
  • Pythonを使った業務改善の例
  • Pythonで印刷を自動化する方法
  • win32apiの使い方
  • フォルダ内のファイルを全て取得する方法
かりん

ファイルを一つ一つ印刷するのって時間掛かるなー

なおひ

それもプログラムで自動でやれるよー

かりん

本当に!?

今回はファイルの印刷をプログラミングで自動化する方法をご紹介します。

実際に僕がPythonを使って作った自動印刷アプリの作り方をご紹介します。

なおひ

ソースコードも載せているのでコピペして使ってください!

こんな人にオススメ
  • ファイル印刷の手間を減らしたい人
  • Pythonを使った業務効率化事例を知りたい人
  • Pythonでwin32apiを使う方法を知りたい人
この記事の著者
PVアクセスランキング にほんブログ村
  • 本業と副業を両立する会社員
  • プログラミングで業務効率化
    (残業時間80H⇒20H)
  • 社内公募に合格
    在宅勤務+ほぼ定時の働き方を得る

運営者プロフィール・Twitter(@Naohi99

\無料でPythonの講座が受けられる!/

目次

今回作った自動印刷アプリ

かりん

今回作ったのはどんなアプリ?

今回作ったアプリは以下の通りのものです。

今回作ったアプリ

あるフォルダ内のファイルを全部印刷してくれるアプリ

なおひ

フォルダに印刷したいファイルを全部入れてアプリを起動すると全て印刷されます!

アプリの動作

STEP
(初回のみ)予めソースコードと同じフォルダに「印刷用」というフォルダを作る

今回作ったアプリのソースコードと同じフォルダに「印刷用」というフォルダを作ります。

一度作ってしまえば2回目以降はそのままでOKです。

STEP
印刷したいファイルを全て「印刷用」フォルダに入れる

印刷したいファイルを全て「印刷用」フォルダに入れましょう。

STEP
自動印刷アプリを起動

コマンドプロンプトに「python 自動印刷アプリのファイル名」を打ち込みます。

今回はアドレス管理アプリの名前は「auto_print.py」なので打ち込むコマンドは以下の通りです。

打ち込むコマンド

python auto_print.py

STEP
アプリがフォルダ内のファイルを全て印刷する(自動)

アプリを起動すると自動でフォルダ内のファイルを全て読み取り、印刷してくれます。

なおひ

後はプリンターの前に行けばOKです。

自動印刷アプリのソースコードとライブラリ

かりん

どうやったら作れるの?

今回作ったアプリのソースコード全文と各要素の動作について説明します。

動作環境

動作環境

OS:Windows10

バージョン:Python 3.8

ソースコード全文

今回のソースコードは以下の通りです。

ソースコード

#!フォルダ内ファイル自動印刷
#!python3

import win32api
import sys
import os
import time

#******* Function *************************************************************************************************************
def auto_print(path):
if __name__ == '__main__':
win32api.ShellExecute(0,"print",path,None,".",0)
print("Printed:"+path)

def file_check(path):
if os.path.isdir(path):
files = os.listdir(path)
for file in files:
file_check(path+"\\"+file)

else:
auto_print(path)
time.sleep(3)

#****** Main *******************************************************************************************************************

print_path = r"./印刷用"

file_check(print_path)

print("Process finished")

\無料でPythonの講座が受けられる!/

使用したライブラリ

今回使用したライブラリは以下の通りです。

ライブラリ

import win32api #プリンター起動用ライブラリ
import sys    #システム操作用ライブラリ
import os    #OS操作用ライブラリ
import time   #時間カウント用ライブラリ

各種ライブラリは事前に以下のコマンドを入力しておくことでインストールできます。

win32apiのインストール

pip install win32api

timeのインストール

pip install time

印刷処理の実行

以下の部分で印刷の処理を行います。

何度も同じ操作をする為、関数として定義しています。

印刷処理部分

def auto_print(path):
if __name__ == '__main__':
win32api.ShellExecute(0,"print",path,None,".",0)
print("Printed:"+path)

ここで、 win32api.ShellExecute を使うことで今回印刷が可能になりました。

win32api.ShellExecuteというのは以下のようなものです。

win32api.ShellExecute とは?

指定されたファイルに対し、特定の操作を実施するもの

例として以下のような作業が可能です。

win32api.ShellExecute で出来ること

  • エディタを起動する
  • エクスプローラーを起動する
  • ファイルを開く
  • 印刷する
  • プロパティを表示する

詳しくはこちらを参照してください↓

参考

win32api.ShellExecuteの解説

なおひ

今回は印刷を使っています。

フォルダ内の全ファイル読み込み

以下の部分でフォルダ内のファイルを全て確認します。

ファイル読み込み部分

def file_check(path):
if os.path.isdir(path):
files = os.listdir(path)
for file in files:
file_check(path+"\\"+file)

else:
auto_print(path)
time.sleep(3)

ここも関数の形で定義しています。

以下のようなフローチャートで動作します。

まずはフォルダ内を見て今見ている対象がファイルなのかフォルダなのか確認します。

フォルダであればさらにその中身を同じように全てチェックします。

ファイルであれば上で書いた関数を呼び出して印刷します。

印刷後、PCが処理する時間を置かないと印刷順がごちゃごちゃになってしまいます。

その為、time.sleepで3秒間をあけるようにしています。

まとめ

これでファイル一つ一つ印刷ボタンを押す手間が省けました。

かりん

地味だけど結構効果あった!

なおひ

案外簡単な構造で作ることが出来ますよ!

わざわざ一つ一つ印刷するような作業はこれでおさらばしましょう。

\無料でPythonの講座が受けられる!/

その他のPythonによる業務効率化事例は以下の記事で紹介します。↓

今回の内容は以上になります。

ここまで読んでくださりありがとうございました。

スポンサーリンク↓

よかったらシェアしてね!

コメント

コメントする

目次
閉じる