3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonでPDFをfoxit readerを利用してプリンタ指定サイレント爆速印刷しよう!

Last updated at Posted at 2020-10-10

開発環境

os:windows10
言語:python3.7
使うソフト:foxit reader

foxit readerのインストールについて

窓の社さんから無償版をダウンロードすると楽です。
https://forest.watch.impress.co.jp/library/software/foxitreader/
公式サイトからダウンロードしようとすると無償版(閲覧・印刷のみ)のものでもメールアドレスなどの登録が必要みたいです。

自分の中で必要だった印刷要件

・少し複雑な形式の書類も大丈夫。
・印刷スピードが早い(1秒)
・単純な手順であること。

pythonの印刷方法

win32
直接テキストデータを送って印刷するものしかなかった。
adobe PDF Reader
adobe PDF Readerのコマンドを使って印刷するもの。 下記の記事を参考に作成。 https://qiita.com/hrs_sano645/items/e0fcf5d896b70822e998 当初はこれを採用する予定だったが実装段階で 印刷からでてくるまでに3秒ほどかかることが発覚。 一瞬CPU占有率が100%いくときがある。 adobe PDF ReaderのGUI画面が表示されるし。 これにより違うやり方を模索する。
ghost scripter
ghost scripterというのを見つけた。 しかし日本語フォントに対応させるのに大変なので却下。
foxit reader
「これからPDFは『赤からオレンジの時代』」  思いっきり煽った宣伝文句が飛び込んでくる adobe PDF readerの対抗ソフト  その文句に負けない機能の優位性が沢山!  テキストベースで作ったPDFの印刷速度がすごい速い  (スキャンしたPDFはほぼ同じスピードです。)  コマンドから印刷するとGUI画面が表示されずサイレント印刷が可能。  CPUの使用率が50%以下である  コマンドがadobeのコマンド形式と似ているのですぐ習得できる。
  ## 実装は以下の手順。 foxit readerの標準インストールしてください。 このままだったらただのfoxit readerをインストールしただけです。 ここからがマグマ流プログラミングです。 ・下のfoxit.pyのソースコードをコピペする ・コントロールパネル >「デバイスとプリンタ」>使用したいプリンタ名を右クリック > プリンタのプロパティ > プリンタ名を一字一句間違えずにコピペ >プリンタ名をソースコードの"プリンタ名"にコピぺ ・印刷したいPDFファイルのパスをソースコードの'pdf_name'にコピペ 実行!やーーーーー! これで爆速印刷が可能になります!  

コマンドラインは以下を参考に作っています。
https://www.lifedesignedit.com/use_foxit_pdf_command_line_options

foxit.py
#foxit_reader経由で印刷する
import subprocess

#プリンタを指定した場合のものです。
#デフォルトプリンタでのやり方も可能。
#詳しくはFoxit Readerを起動して、ヘルプ>コマンドラインオプションで
def print_PDF_file_via_foxitReader(pdf_name,printer_name):
    # foxitのパスは標準インストールした場合です。環境よってちがうかも。
    foxit_exe = r"C:\Program Files (x86)\Foxit Software\FoxitReader\FoxitReader.exe" 
    print_cmd = '"{}" /t "{}" "{}"'.format(foxit_exe,pdf_name,printer_name)
    subprocess.Popen(print_cmd)


if __name__ == '__main__':
    pdf_name = 'pdf_name'
    print_name = 'プリンタ名'
    print_PDF_file_via_foxitReader(pdf_name,printer_name)

なにか間違いがあったら言ってください。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?