Tiff-Dateien in vielen Unterordnern zusammenfügen zu einem PDF pro Ordner
Ich habe eine Ordnerstruktur in der sich unregelmäßig viele Tiffs in einzelen Ordnern befinden.
Ziel ist es nun "automatisiert" (per Batch oder so...) die Ordner zu durchsuchen und ein PDF pro Ordner zu erzeugen, wobei alle im Ordner befindlichen Tiffs zusammengefasst werden.
Am Ende sollte die PDFs wie der jeweilige Ordner bezeichnet sein.
System:
Windows XP
Programme:
Adobe Acrobat Professional 9
- freeware möglich...
Aufbau:
Ordner1 -> 10 Tiffs
Ordner2 -> 15 Tiffs
Ordner3 -> 113 Tiffs
...
Ziel:
Ordner1.pdf
Ordner2.pdf
Ordner3.pdf
Vielen Dank für Ihre Bemühungen
Repro-Rone
Am Ende sollte die PDFs wie der jeweilige Ordner bezeichnet sein.
System:
Windows XP
Programme:
Adobe Acrobat Professional 9
- freeware möglich...
Aufbau:
Ordner1 -> 10 Tiffs
Ordner2 -> 15 Tiffs
Ordner3 -> 113 Tiffs
...
Ziel:
Ordner1.pdf
Ordner2.pdf
Ordner3.pdf
Vielen Dank für Ihre Bemühungen
Repro-Rone
Please also mark the comments that contributed to the solution of the article
Content-Key: 155343
Url: https://administrator.de/contentid/155343
Printed on: April 23, 2024 at 21:04 o'clock
18 Comments
Latest comment
ich habe gerade ein shell script für linux/unix erstellt:
habe noch etwas geduld, dann kommt auch noch die powershell version
gruß michael
### Tiff2PDF
### (c) M. N. 18.11.2010
QUELLE="/daten//temp"
ZIEL="/daten//temp/"
EXTENSION="*.tif"
DIR=`find $QUELLE -type d`
for i in $DIR; do
b=`echo $i | awk -F '/' '{ print $NF }'`
convert "$i/$EXTENSION" "$i/$b.pdf"
done
gruß michael
so habe fertig.
schaues dir einfach an, hier die powershell version.
abspeichern als "nameirgendwas.ps1"
ist denke ich sehr schlüssig der code
wenn noch änderungen sind sach einfach bescheid.
zurzeit ist es so das die pdf in dem verzeichnis gespeichert wird in dem die entsprechenden tif dateien sind.
gruß michael
schaues dir einfach an, hier die powershell version.
abspeichern als "nameirgendwas.ps1"
ist denke ich sehr schlüssig der code
wenn noch änderungen sind sach einfach bescheid.
zurzeit ist es so das die pdf in dem verzeichnis gespeichert wird in dem die entsprechenden tif dateien sind.
das "Set-ExecutionPolicy Unrestricted" in der powershell einmal perhand ausführen.
# **************************************************************
# Tiff2PDF
# bitte hier die benoetigte imageversion runterladen
#
# http://www.imagemagick.org/script/binary-releases.php#windows
#
# einmal auf der powershell ausgeführt werden
# "Set-ExecutionPolicy Unrestricted"
# **************************************************************
#
# **************************************************************
# * Erstellt M.N. - POWERSHELL / Entwicklung 18.11.2010 *
# **************************************************************
$QUELLE = "c:\Temp"
$EXTENSION = "*.tif"
### laufzeit auswertung start
$start = Get-Date
echo "programm gestartet"
### Verzeichnis namen speichern
$VERZEICHNIS = Get-ChildItem $QUELLE -recurse -filter * | ? { $_.PSisContainer -eq $true } | sort
### verzeichnis namen der reihe nach abarbeiten
foreach ($i in $VERZEICHNIS) {
echo "bearbeite verzeichnis: `t$i"
$i2 = $i.fullname
convert "$i2\$EXTENSION" "$i2\$i.pdf"
}
### laufzeit auswertung stop
$stop = Get-Date
#### laufzeit auswertung
$gelaufenezeit = ($stop - $start).TotalSeconds
If ($gelaufenezeit -gt 60) {
$gelaufenezeit = ($gelaufenezeit / 60)
$MINSEK = "Min."}
Else {$MINSEK = "Sek."}
echo "Auftrag nach $gelaufenezeit $MINSEK erledigt...."
gruß michael
hat etwas gedauert... ist jetzt version 2.0
hier mein powershell script:
bitte kurz melden ob es so geht... hatte es getestet aber kann ja sein das noch was fehlt.
gruß michael
hier mein powershell script:
# **************************************************************
# Tiff2PDF
# bitte hier die benoetigte imageversion runterladen
#
# http://www.imagemagick.org/script/binary-releases.php#windows
#
# einmal auf der powershell ausgeführt werden
# "Set-ExecutionPolicy Unrestricted"
# **************************************************************
#
# **************************************************************
# * Erstellt M.N. - POWERSHELL / Entwicklung 19.11.2010 *
# * Version: 2.0 :)
# **************************************************************
$QUELLE = "c:\Temp"
$EXTENSION = "*.tif"
$ZIEL = "C:\Temp"
$FILE = "INDEX.DAT"
### laufzeit auswertung start
#$start = Get-Date
#$ErrorActionPreference = 'stop'
$ErrorActionPreference = 'SilentlyContinue'
echo "programm gestartet"
function pic_convert() {
### Verzeichnis namen speichern
$VERZEICHNIS = Get-ChildItem $QUELLE -recurse -filter * | ? { $_.PSisContainer -eq $true } | sort
$VERZEICHNISZAHL = $VERZEICHNIS.Count
echo "es sind $VERZEICHNISZAHL verzeichnisse die bearbeitet werden..."
### verzeichnis namen der reihe nach abarbeiten
foreach ($i in $VERZEICHNIS) {
$VERZEICHNISZAHL = $VERZEICHNISZAHL-1
if ($VERZEICHNISZAHL -eq 0) {
"bearbeite verzeichnis: `t$i" }
Else {
"bearbeite verzeichnis: `t$i, noch $VERZEICHNISZAHL verzeichnisse...." }
$i2 = $i.fullname
convert "$i2\$EXTENSION" "$i2\$i.pdf"
}
### laufzeit auswertung stop
$stop = Get-Date
timepost
}
function movefile_createdir() {
$start = Get-Date
$TEXT = Get-Content $QUELLE\$FILE
#$TEXT1 = Import-Csv -UseCulture "," -InputObject $TEXT -Delimiter ","
$TEXT1 = ConvertFrom-Csv -InputObject $TEXT -Delimiter "," -header
foreach ( $i in $TEXT1 ) {
$REG1 = $i -match '(\d{4}##)'
$TEXT3 = $matches
$REG2 = $i -match '(\d{2}#\d{4}#)'
$TEXT4 = $matches
echo "Ordnername: `t$TEXT3$TEXT4"
if (Test-Path $ZIEL\$TEXT3$TEXT4) {
echo "Verzeichnis $ZIEL\$TEXT3$TEXT4 ist da" }
else {
echo "Verzeichnis $ZIEL\$TEXT3$TEXT4 nicht da"
md "$ZIEL\$TEXT3$TEXT4" }
$rohtext = "$i"
$muster = '(\d{8}\.TIF)'
$regex = [regex]$muster
foreach ($i1 in $regex.Matches($rohtext)) {
echo "`tDatei: `t`t`t$i1"
Move-Item -path "$QUELLE\$i1" -destination "$ZIEL\$TEXT3$TEXT4\$i1"
}
}
}
#### laufzeit auswertung
function timepost() {
$gelaufenezeit = ($stop - $start).TotalSeconds
If ($gelaufenezeit -gt 60) {
$gelaufenezeit = ($gelaufenezeit / 60)
$MINSEK = "Min."}
Else {$MINSEK = "Sek."}
'Auftrag nach {0:0.00} {1} erledigt....' -f $gelaufenezeit, $MINSEK
}
movefile_createdir
pic_convert
gruß michael
so ist endlich am laufen.... ich sollte nicht so kompliziert denken.
gruß michael
# **************************************************************
# Tiff2PDF
# bitte hier die benoetigte imageversion runterladen
#
# http://www.imagemagick.org/script/binary-releases.php#windows
#
# einmal auf der powershell ausgeführt werden
# "Set-ExecutionPolicy Unrestricted"
# **************************************************************
#
# **************************************************************
# * Erstellt M.N. - POWERSHELL / Entwicklung 22.11.2010 *
# * Version: 2.0 :)
# **************************************************************
$QUELLE = "C:\Temp"
$EXTENSION = "*.tif"
$ZIEL = "C:\Temp"
$FILE = "INDEX.DAT"
### laufzeit auswertung start
#$start = Get-Date
#$ErrorActionPreference = 'stop'
$ErrorActionPreference = 'SilentlyContinue'
$start = Get-Date
echo "programm gestartet"
function pic_convert() {
### Verzeichnis namen speichern
$VERZEICHNIS = Get-ChildItem $QUELLE -recurse -filter * | ? { $_.PSisContainer -eq $true } | sort
$VERZEICHNISZAHL = $VERZEICHNIS.Count
echo "es sind $VERZEICHNISZAHL verzeichnisse die bearbeitet werden..."
### verzeichnis namen der reihe nach abarbeiten
foreach ($i in $VERZEICHNIS) {
$VERZEICHNISZAHL = $VERZEICHNISZAHL-1
if ($VERZEICHNISZAHL -eq 0) {
"bearbeite verzeichnis: `t$i" }
Else {
"bearbeite verzeichnis: `t$i, noch $VERZEICHNISZAHL verzeichnisse...." }
$i2 = $i.fullname
convert "$i2\$EXTENSION" "$i2\$i.pdf"
}
### laufzeit auswertung stop
$stop = Get-Date
timepost
}
function movefile_createdir() {
$TEXT = Get-Content $QUELLE\$FILE
foreach ( $i in $TEXT ) {
$REG1 = $i -match '(\d{4}##)'
$TEXT3 = $matches
$REG2 = $i -match '(\d{2}#\d{4}#)'
$TEXT4 = $matches
echo "Ordnername: `t$TEXT3$TEXT4"
if (Test-Path $ZIEL\$TEXT3$TEXT4) {
echo "Verzeichnis $ZIEL\$TEXT3$TEXT4 ist da" }
else {
echo "Verzeichnis $ZIEL\$TEXT3$TEXT4 nicht da"
md "$ZIEL\$TEXT3$TEXT4" }
$rohtext = "$i"
$muster = '(\d{8}\.TIF)'
$regex = [regex]$muster
foreach ($i1 in $regex.Matches($rohtext)) {
echo "`tDatei: `t`t`t$i1"
Move-Item -path "$QUELLE\$i1" -destination "$ZIEL\$TEXT3$TEXT4\$i1"
}
}
}
#### laufzeit auswertung
function timepost() {
$gelaufenezeit = ($stop - $start).TotalSeconds
If ($gelaufenezeit -gt 60) {
$gelaufenezeit = ($gelaufenezeit / 60)
$MINSEK = "Min."}
Else {$MINSEK = "Sek."}
'Auftrag nach {0:0.00} {1} erledigt....' -f $gelaufenezeit, $MINSEK
}
movefile_createdir
pic_convert
gruß michael