画像ファイルのPDF変換をリアルタイムで自動実行する。
監視フォルダーに投入された画像ファイルをPDFファイルに自動変換します。
- 画像ファイル JPG, PNG, GIF, Tiff をPDFファイルに変換します。
- Microsoft Print to PDF 仮想プリンター、PowerShell を利用しバッチファイルから実行します。
- 以下のコードをテキストエディタ(メモ帳など)にコピーし、例えば
Image2PDF.bat
のような名前で読み書き可能なフォルダーに保存します。ファイルの文字コードは ANSI を推奨します。 - 「クラウド対応自動印刷」で「設定」→「プリンター/処理」→「.Batchファイルを実行する」→「詳細」で保存したバッチファイル(Image2PDF.bat) を選択します。 → 参考サイト
- PDFファイルの出力フォルダーは同上の「出力フォルダー:」で指定します。
バッチファイルコード:
@echo off
setlocal enableextensions enabledelayedexpansion
rem 引数チェック
if "%~1"=="" (
echo ERROR: 画像ファイルを指定してください。>> "%~2\error.log" 2>&1
exit /b 1
)
if "%~2"=="" (
echo ERROR: 出力フォルダーを指定してください。>> "%~2\error.log" 2>&1
exit /b 1
)
rem 変数設定
set "img=%~1"
set "outdir=%~2"
set "pdf=%outdir%\%~n1.pdf"
set "errlog=%outdir%\error.log"
rem 出力フォルダー作成
if not exist "%outdir%" (
mkdir "%outdir%" 2>>"%errlog%"
)
rem PowerShell で「Microsoft Print to PDF」印刷
powershell -NoProfile -Command ^
"$imgPath='%img%';" ^
"$pdfPath='%pdf%';" ^
"Add-Type -AssemblyName System.Drawing;" ^
"Add-Type -AssemblyName System.Drawing.Printing;" ^
"$pd=New-Object System.Drawing.Printing.PrintDocument;" ^
"$pd.PrinterSettings.PrinterName='Microsoft Print to PDF';" ^
"$pd.PrinterSettings.PrintToFile=$true;" ^
"$pd.PrinterSettings.PrintFileName=$pdfPath;" ^
"$pd.add_PrintPage({param($sender,$e); " ^
"$img=[System.Drawing.Image]::FromFile($imgPath);" ^
"$e.Graphics.DrawImage($img,$e.PageBounds);});" ^
"$pd.Print();" 2>>"%errlog%"
if errorlevel 1 (
echo ERROR: PDF生成に失敗しました。>> "%errlog%"
exit /b 1
)
echo PDFを出力しました: "%pdf%"
exit /b 0