Mehrere Dateien(pdf) einlesen und in ein anderes Dateiformat konvertieren
Hallo Community,
ich habe ein Problem bei der Erstellung einer Batch-Datei die mir PDf´s in ein Bitmap oder sonstiges Bildformat konvertiert.
Nach einigen Google Recherchen bin ich auf folgendes Script gestoßen. Dieses benutzt zum Konvertieren das Programm Ghostscript
@echo off %debug%
if not exist %1.pdf goto usage
:doit
echo -I"C:\Programme\gs\gs8.53\bin\;C:\Programme\gs\fonts" >>_.cmd
echo -sDEVICE=bmp256 >>_.cmd
echo -r100x100 >>_.cmd
echo -dNOPAUSE >>_.cmd
echo -sOutputFile=%1%%d.bmp >>_.cmd
gswin32.exe @_.cmd %1.pdf -c quit
rem del _.cmd
goto end
:usage
echo.
echo Aufruf: pdf2bmp Dateiname
echo Die Namenserweiterung .PDF darf nicht mit
echo angegeben werden
echo.
:end
Dieses Script funktioniert für einzelne Pdf´s auch wunderbar. Nur ist es sehr aufwendig, in der Kommandozeile für jede Pdf dieses auszuführen.
Nun wollte ich gerne wissen, wie ich es am besten anstelle, dass er mir mit dem Script alle pdf´s die sich in dem jeweiligen Ordner befinden in bmp etc. umwandelt? Leider besitze ich keine guten Kenntnisse in sachen Batch. Bin für jede Hilfe dankbar.
gruß
Ulle
ich habe ein Problem bei der Erstellung einer Batch-Datei die mir PDf´s in ein Bitmap oder sonstiges Bildformat konvertiert.
Nach einigen Google Recherchen bin ich auf folgendes Script gestoßen. Dieses benutzt zum Konvertieren das Programm Ghostscript
@echo off %debug%
if not exist %1.pdf goto usage
:doit
echo -I"C:\Programme\gs\gs8.53\bin\;C:\Programme\gs\fonts" >>_.cmd
echo -sDEVICE=bmp256 >>_.cmd
echo -r100x100 >>_.cmd
echo -dNOPAUSE >>_.cmd
echo -sOutputFile=%1%%d.bmp >>_.cmd
gswin32.exe @_.cmd %1.pdf -c quit
rem del _.cmd
goto end
:usage
echo.
echo Aufruf: pdf2bmp Dateiname
echo Die Namenserweiterung .PDF darf nicht mit
echo angegeben werden
echo.
:end
Dieses Script funktioniert für einzelne Pdf´s auch wunderbar. Nur ist es sehr aufwendig, in der Kommandozeile für jede Pdf dieses auszuführen.
Nun wollte ich gerne wissen, wie ich es am besten anstelle, dass er mir mit dem Script alle pdf´s die sich in dem jeweiligen Ordner befinden in bmp etc. umwandelt? Leider besitze ich keine guten Kenntnisse in sachen Batch. Bin für jede Hilfe dankbar.
gruß
Ulle
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69877
Url: https://administrator.de/contentid/69877
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
ich hatte die Tage ein ähnlich gelagertes Problem und habe es mit VBScript gelöst.
Nur musste ich hier XML Dateien nach PDF konvertieren
Dim fso, WSHShell
Pfad = "H:\GEPACH\D2D\DATA\1999854101\280920070021\"
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(Pfad)
Set fs = f.Files
Params1 = " -i "
Params2 = " -o "
For each fl in fs
Datei = Pfad&fl.name
If UCase(Right(Datei,3))="XML" Then
WSHShell.Run "daleuv2pdf.exe "& Params1 & Datei & Params2 & Pfad,0,True
End If
Next
vielleicht hilft's ja
ciao
TH
ich hatte die Tage ein ähnlich gelagertes Problem und habe es mit VBScript gelöst.
Nur musste ich hier XML Dateien nach PDF konvertieren
Dim fso, WSHShell
Pfad = "H:\GEPACH\D2D\DATA\1999854101\280920070021\"
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(Pfad)
Set fs = f.Files
Params1 = " -i "
Params2 = " -o "
For each fl in fs
Datei = Pfad&fl.name
If UCase(Right(Datei,3))="XML" Then
WSHShell.Run "daleuv2pdf.exe "& Params1 & Datei & Params2 & Pfad,0,True
End If
Next
vielleicht hilft's ja
ciao
TH
Wenn du bei Batch bleiben wilslt kansn tdu auch einfach folgende Änderungen machen:
miniversum
@echo off
set Verzeichnis="C:\pdfs\" & REM Verzeichniss indem sich die PDFs befinden. Wird "" angegeben wird das aktuelle Verzeichnis genommen inder die Batch liegt
echo -I"C:\Programme\gs\gs8.53\bin\;C:\Programme\gs\fonts" >>_.cmd
echo -sDEVICE=bmp256 >>_.cmd
echo -r100x100 >>_.cmd
echo -dNOPAUSE >>_.cmd
echo -sOutputFile=%1%%d.bmp >>_.cmd
FOR /F "delims=" %%f in ('dir /B /A-D %verzeichnis%*.pdf') do gswin32.exe @_.cmd "%%f" -c quit
rem del _.cmd
miniversum
Hallo Ulle123!
Eine andere Batch-Variante (allerdings ungetestet, daher am besten mit einem Test-Verzeichnis mit nur 2 oder 3 Dateien versuchen):
Beim Aufruf kann ein Verzeichnis übergeben werden, ansonsten wird die Konvertierung für das aktuelle Verzeichnis vorgenommen.
Mangels näherer Kenntnis von Ghostscript (und besonders der Commandline-Argumente) kann ich nicht abschätzen, ob die folgende weitere, von oben abgeleitete, Version (diesmal ohne Parameterfile) tatsächlich so funktionieren kann:
Grüße
bastla
Eine andere Batch-Variante (allerdings ungetestet, daher am besten mit einem Test-Verzeichnis mit nur 2 oder 3 Dateien versuchen):
@echo off
set "Verzeichnis=%~1\"
if "%~1"=="" set Verzeichnis=
for %%f in ("%Verzeichnis%*.pdf") do (
echo -I"C:\Programme\gs\gs8.53\bin\;C:\Programme\gs\fonts" >_.cmd
echo -sDEVICE=bmp256 >>_.cmd
echo -r100x100 >>_.cmd
echo -dNOPAUSE >>_.cmd
echo -sOutputFile="%%~dpnf.bmp" >>_.cmd
gswin32.exe @_.cmd "%%f" -c quit
)
del _.cmd
Mangels näherer Kenntnis von Ghostscript (und besonders der Commandline-Argumente) kann ich nicht abschätzen, ob die folgende weitere, von oben abgeleitete, Version (diesmal ohne Parameterfile) tatsächlich so funktionieren kann:
@echo off
set "Verzeichnis=%~1\"
if "%~1"=="" set Verzeichnis=
for %%f in ("%Verzeichnis%*.pdf") do gswin32.exe -I"C:\Programme\gs\gs8.53\bin\;C:\Programme\gs\fonts" -sDEVICE=bmp256 -r100x100 -dNOPAUSE -sOutputFile="%%~dpnf.bmp" "%%f" -c quit
Grüße
bastla