ペーパーレス時代の真っ只中で、最近はプリンタで紙を印刷する機会が減ったと思います。
しかし、超古臭い体質の企業に勤めている筆者、
まさかの自動印刷プログラムを組むことになり、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のすごいところです(笑)
以上!
コメント