Pythonでプリンター印刷する

ソフトウェア

 

ペーパーレス時代の真っ只中で、最近はプリンタで紙を印刷する機会が減ったと思います。

 

しかし、超古臭い体質の企業に勤めている筆者、

まさかの自動印刷プログラムを組むことになり、pythonで実現しました。

 

参考までに紹介します。

 

 

Pythonで自動印刷プログラム

 

ペーパレス全盛のこのご時世、pythonからプリンタを使うことを誰も想定していないのでしょう。

プリンタを直接操作するモジュールは存在しませんでした。

 

本プログラムの動作環境はWindows10なので、WindowsAPIのpythonラッパーからプリンタを操作することになりました。

 

以下コードです。

import win32con
import win32print
import win32ui
def print_paper(sentence):
    INCH = 1440
    hDC = win32ui.CreateDC()
    hDC.CreatePrinterDC(win32print.GetDefaultPrinter())
    hDC.StartDoc('TestPrint')
    hDC.StartPage()
    hDC.SetMapMode(win32con.MM_TWIPS)
    hDC.DrawText(sentence, (0, INCH * -1, INCH * 8, INCH * -2), win32con.DT_CENTER)
    hDC.EndPage()
    hDC.EndDoc()
 if __name__ == '__main__':
    print_paper('TEST print')

実行すると、優先で使うように設定されているプリンタから「TEST Print.」と印刷された紙が出力されます。

 

プリント成果物をプリンタなしで確認する方法

 

Windowの場合、コンピュータとプリンタが接続されていなくても印刷物をPDFとして出力することができます。

 

「コントロールパネル > ハードウェアとサウンド > デバイスとプリンター」

そしてプリンタドロップダウンを開き、

「Microsoft Print to PDF」を右クリック、「通常使うプリンタに設定」をクリックすると、プリンタの接続有無に関わらず、印刷結果がPDF出力されます。

 

知っている方も多いと思いますが、Tipsとして残しておきます。

私は新入社員の頃この機能を知らず、紙に大量のテスト印刷し、先輩に呆れた目で見られました。。。

 

まとめ

 

pythonからプリンタ出力するプログラムの紹介でした。

印刷自体の需要が減っている中、それでも印刷できてしまうのがpythonのすごいところです(笑)

 

以上!

コメント