ユーザー作成のバッチファイルを実行することで自動的にPDFファイルの結合を行います。
- 監視フォルダーへのPDFファイルの投入で既存のPDFファイルと自動的に結合します。
- PDFのフリーソフトで有名な pdftk.exe を使用します。https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ からダウンロードできます。
- GUIツールは使わずにコマンドラインツールである pdftk.exe を使います。
pdftk.exe
がインストールされており、PCの環境変数「PATH」に追加されている必要があります。(コマンドプロンプトで pdftk
と入力してエンターを押し、pdftkの情報が表示されればOKです)
- 以下のコードをテキストエディタ(メモ帳など)にコピーし、例えば
MergePDF.bat
のような名前で読み書き可能なフォルダーに保存します。ファイルの文字コードは ANSI (Shift_JIS) を推奨します。
- 「クラウド対応自動印刷」で「設定」→「プリンター/処理」→「.Batchファイルを実行する」→「詳細」で保存したバッチファイル(MergePDF.bat) を選択します。 → 参考サイト
✅ バッチファイルコード
@echo off
setlocal enabledelayedexpansion
REM --------------------------------------------------------------------------
REM PDF結合バッチファイル
REM
REM 機能:
REM - 指定されたPDFファイル(%1)を指定フォルダー(%2)にあるMerged.pdfに結合します。
REM - Merged.pdfが存在しない場合は、最初のPDFをMerged.pdfとして移動します。
REM - 処理中に発生したエラーは、指定フォルダー内のMergePDF.logに追記されます。
REM
REM 使い方:
REM MergePDF.bat "C:\作業用\追加したい.pdf" "D:\保管先フォルダー"
REM --------------------------------------------------------------------------
REM --- 引数のチェック ---
if "%~1"=="" (
echo [エラー] 結合元のPDFファイルを指定してください。
echo 例: %~n0 "C:\source.pdf" "D:\destination"
exit /b 1
)
if "%~2"=="" (
echo [エラー] 結合先のフォルダーを指定してください。
echo 例: %~n0 "C:\source.pdf" "D:\destination"
exit /b 1
)
REM --- 変数の設定 ---
set "SOURCE_FILE=%~1"
set "DEST_FOLDER=%~2"
set "MERGED_FILE=%DEST_FOLDER%\Merged.pdf"
set "TEMP_FILE=%DEST_FOLDER%\temp_merged.pdf"
set "ERROR_LOG=%DEST_FOLDER%\%~n0.log"
REM --- pdftk.exe の存在確認 ---
where pdftk >nul 2>nul
if %errorlevel% neq 0 (
echo %date% %time% - [ERROR] pdftk.exeが見つかりません。PATHが通っているか確認してください。 >> "%ERROR_LOG%"
echo [エラー] pdftk.exeが見つかりません。PATHが通っているか確認してください。
exit /b 1
)
REM --- 結合先フォルダーの存在確認 ---
if not exist "%DEST_FOLDER%" (
echo %date% %time% - [ERROR] 結合先のフォルダーが存在しません: "%DEST_FOLDER%" >> "%ERROR_LOG%"
echo [エラー] 結合先のフォルダーが存在しません: "%DEST_FOLDER%"
exit /b 1
)
REM --- Merged.pdf の有無で処理を分岐 ---
if exist "%MERGED_FILE%" (
REM ---【2回目以降】Merged.pdf に追加で結合する処理 ---
echo %date% %time% - [INFO] 結合開始: "%MERGED_FILE%" + "%SOURCE_FILE%" >> "%ERROR_LOG%"
rem pdftkで既存のMerged.pdfと新しいPDFを結合し、一時ファイルとして出力
pdftk.exe "%MERGED_FILE%" "%SOURCE_FILE%" cat output "%TEMP_FILE%" 2>> "%ERROR_LOG%"
rem 直前のコマンドが成功したか(errorlevelが0か)判定
if !errorlevel! neq 0 (
echo %date% %time% - [ERROR] PDFの結合に失敗しました。詳細はログを確認してください。 >> "%ERROR_LOG%"
echo [エラー] PDFの結合に失敗しました。
if exist "%TEMP_FILE%" del "%TEMP_FILE%"
exit /b 1
)
rem 元のMerged.pdfを削除し、一時ファイルをリネーム
del "%MERGED_FILE%"
ren "%TEMP_FILE%" "Merged.pdf"
echo %date% %time% - [SUCCESS] 結合が完了しました。 >> "%ERROR_LOG%"
echo 結合が完了しました。
) else (
REM ---【初回】指定されたPDFを Merged.pdf として移動する処理 ---
echo %date% %time% - [INFO] 新規作成: "%SOURCE_FILE%" を "%MERGED_FILE%" として移動します。 >> "%ERROR_LOG%"
rem %1のファイルを%2へMerged.pdfという名前で移動
move "%SOURCE_FILE%" "%MERGED_FILE%" >nul 2>> "%ERROR_LOG%"
rem 直前のコマンドが成功したか判定
if !errorlevel! neq 0 (
echo %date% %time% - [ERROR] ファイルの移動に失敗しました。詳細はログを確認してください。 >> "%ERROR_LOG%"
echo [エラー] ファイルの移動に失敗しました。
exit /b 1
)
echo %date% %time% - [SUCCESS] Merged.pdf を新規作成しました。 >> "%ERROR_LOG%"
echo Merged.pdf を新規作成しました。
)
endlocal
- スクリプトのテスト方法:
コマンドプロンプトから実行します:
MergePDF.bat "C:\Users\YourUser\Desktop\追加するPDF.pdf" "D:\Output"
%1
には "C:\Users\YourUser\Desktop\追加するPDF.pdf"
が入ります。
%2
には "D:\Output"
が入ります。
⚙️ 処理の流れ
- 初回実行時: D:¥Outputフォルダーに
Merged.pdf
がない場合、追加するPDF.pdf
が D:\Output
へ移動され、Merged.pdf
という名前に変更されます。
- 2回目以降の実行時:
D:\Output
フォルダーに Merged.pdf
が既にある場合、新しく指定されたPDFファイルが既存の Merged.pdf
の末尾に追加結合されます。
- エラー発生時: 実行結果と何らかのエラー(ファイルの指定ミス、アクセス権限の問題など)が発生した場合、その内容が
D:\Output\MergedPdf.log
に日時とともに記録されます。