teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード修正

2020/07/06 04:52

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -12,5 +12,6 @@
12
12
  os.chdir(os.path.dirname(os.path.abspath(__file__)))
13
13
  path = os.getcwd()
14
14
  pdf_file_name = os.path.join(path, "test.pdf")
15
+ print( pdf_file_name, os.path.exists(pdf_file_name)) # ファイルの存在確認
15
16
  win32api.ShellExecute(0, "print", pdf_file_name, None, ".", 0)
16
17
  ```

1

追記

2020/07/06 04:52

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,1 +1,16 @@
1
- 第一案にて`os.getcwd()`の戻り値のディレクトリ文字列の末尾にはパス区切り記号はついていないので`pdf_file_name = os.path.join(path, "test~")`なりで結合する必要があります。
1
+ 第一案にて`os.getcwd()`の戻り値のディレクトリ文字列の末尾にはパス区切り記号はついていないので`pdf_file_name = os.path.join(path, "test~")`なりで結合する必要があります。
2
+
3
+ ###追記
4
+ Win10, Anaconda(Python3.7.7), `.pdf`は`Adobe Acrobat Reader DC`に関連付けた環境にて
5
+ 以下`test.py`と`test.pdf`をデスクトップ上に配置し`Anaconda Prompt`にて実行したところ正常に既定のプリンタで印刷できました。
6
+ ```Python
7
+ import win32api
8
+ import sys
9
+ import os
10
+
11
+ if __name__ == '__main__':
12
+ os.chdir(os.path.dirname(os.path.abspath(__file__)))
13
+ path = os.getcwd()
14
+ pdf_file_name = os.path.join(path, "test.pdf")
15
+ win32api.ShellExecute(0, "print", pdf_file_name, None, ".", 0)
16
+ ```