PythonでPDFを再PDF化したいです。
解決したいこと
PDF内のスタンプを編集されたくないので、再度PDF化したいと考えています。再PDF化は印刷設定で"Microsoft Print to PDF"を指定してPDF化したいです。下記のコードでは印刷設定のダイアログが開いてしまいます。ダイアログは開かずに、input_folder内のファイルをすべて再PDF化しoutput_folderに送りたいです。解決法をご教授願います。
環境
python3.11.7
Adobe Acrobat 2017
該当するソースコード
import os
import subprocess
def print_to_pdf(input_folder, output_folder):
# 入力フォルダー内のすべてのPDFファイルに対してループを実行
for filename in os.listdir(input_folder):
if filename.endswith(".pdf"):
input_pdf_path = os.path.join(input_folder, filename)
# 出力PDFファイルのパスを作成
output_pdf_path = os.path.join(output_folder, filename)
# Adobe Acrobatのパス
acrobat_path = r"C:\Program Files (x86)\Adobe\Acrobat 2017\Acrobat\Acrobat.exe"
# Adobe Acrobatを起動して指定されたPDFファイルをMicrosoft Print to PDFプリンターで印刷
print_command = f'"{acrobat_path}" /t "{input_pdf_path}" "Microsoft Print to PDF"'
process = subprocess.Popen(print_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
exit_code = process.wait()
# Adobe Acrobatの印刷ジョブが正常に終了した場合、出力ファイルが生成されているか確認し、存在すればリネーム
if exit_code == 0 and os.path.exists(output_pdf_path):
print(f"{filename} を印刷しました。")
os.rename(output_pdf_path, os.path.join(output_folder, filename))
else:
print(f"{filename} の印刷中にエラーが発生しました。")
# 入力フォルダー
input_folder = r"C:\Users\CR\Desktop\PDF入力"
# 出力先フォルダー
output_folder = r"C:\Users\CR\Desktop\PDF出力先"
# PDFを印刷して出力フォルダーに保存
print_to_pdf(input_folder, output_folder)
0 likes