PDFをPNGに変換するバッチファイル
任意のファイルを同ディレクトリ内のpdfファイルすべてをpngファイルに変換するバッチファイルです.
※set gs= の部分にはご自身のPC内のGhostscriptの実行ファイルまでのパスを書いてください.
・1ページ目のみ変換すればいいとき
@echo off
for %%a in (*.pdf) do call :convert "%%a"
for %%b in (*.png) do call :rename "%%b"
pause
exit /b
goto :eof
:convert
set fname=%~1
set pdf="%fname%"
set page_start=1
set page_end=1
set file_pre=
set gs="C:\Program Files\gs\gs9.16\bin\gswin64c.exe"
set opt=-sDEVICE=png16m -r320 -dTextAlphaBits=4
setlocal enabledelayedexpansion
for /L %%i in (%page_start%, 1, %page_end%) do (
set pages=-dFirstPage=%%i -dLastPage=%%i
set png=-sOutputFile=%file_pre%"%fname%".png
%gs% -q -dBATCH -dNOPAUSE %opt% !pages! !png! %pdf%
echo !png!)
goto :eof
:rename
set fname=%~1
set fname=%fname:.pdf=%
ren %1 "%fname%"
goto :eof
・特定のページ間を変換したいとき
@echo off
for %%a in (*.pdf) do call :convert "%%a"
for %%b in (*.png) do call :rename "%%b"
pause
exit /b
goto :eof
:convert
set fname=%~1
set pdf="%fname%"
set page_start=1
set page_end=1
set file_pre=
set gs="C:\Program Files\gs\gs9.16\bin\gswin64c.exe"
set opt=-sDEVICE=png16m -r320 -dTextAlphaBits=4
setlocal enabledelayedexpansion
for /L %%i in (%page_start%, 1, %page_end%) do (
set pages=-dFirstPage=%%i -dLastPage=%%i
set png=-sOutputFile=%file_pre%"%fname%"%%i.png
%gs% -q -dBATCH -dNOPAUSE %opt% !pages! !png! %pdf%
echo !png!)
goto :eof
:rename
set fname=%~1
set fname=%fname:.pdf=%
ren %1 "%fname%"
goto :eof
参考URL:
http://rtaki.sakura.ne.jp/infra/?p=330
http://d.hatena.ne.jp/jak-san/20081226/1230297229
・ファイルを移動 move (ファイル名) ./パス
・名前に変数を %変数%
synctexを使えばよい
注意:texファイルのフルパスの途中に日本語を含まないこと.例えば,ユーザー名が日本語になっていると参照が上手くいかない.
パスは右クリックの「プロパティ」-「場所」を見ればわかる.