Generischer CMD Code: Unterschied zwischen den Versionen
Silvan (Diskussion | Beiträge) K (Silvan verschob die Seite Generischer Code nach Generischer CMD Code) |
Stefan (Diskussion | Beiträge) |
||
Zeile 75: | Zeile 75: | ||
Alternativ dazu gibt es das Skript '''tiffzip2pdf.bat'''. Hier werden die Tiff-Dateien mit Zip-Kompression in das PDF eingesetzt. Es findet keine zwischenzeitliche Umwandlung in JPG statt. | Alternativ dazu gibt es das Skript '''tiffzip2pdf.bat'''. Hier werden die Tiff-Dateien mit Zip-Kompression in das PDF eingesetzt. Es findet keine zwischenzeitliche Umwandlung in JPG statt. | ||
Alternativ dazu gibt es das Skript '''multipagepdf2k40.bat'''. Hier werden die Tiff-Dateien in JPEG2000 Dateien umgewandelt mit Qualitätseinstellung 40. | |||
===Multipage PDF-Dateien aus JPG-Dateien erzeugen=== | ===Multipage PDF-Dateien aus JPG-Dateien erzeugen=== | ||
Zeile 84: | Zeile 86: | ||
===Umwandeln von TIFF-Dateien in JPG-Dateien=== | ===Umwandeln von TIFF-Dateien in JPG-Dateien=== | ||
;Skript - tif2jpg.bat Quellpfad Zielpfad: | ;Skript - tif2jpg.bat Quellpfad Zielpfad: | ||
=== Multipage PDF-Dateien aus JPEG2000 Dateien erzeugen=== | |||
;Skript - Multipagepdf2k40.bat | |||
Beim umwandeln kann die DPI Auflösung nicht gesteuert werden, bzw. wird immer auf 72DPI gerechnet. Dies hat zur Folge, dass die Dokumente welche z.B. von 300DPI runtergerechnet wurden, anschliessend im PDF zu gross (Dokumentgrösse x(mm) - y(mm)) erscheinen. | |||
Mit der Option -Density kann beim erzeugen des PDF's der DPI Wert angegeben werden. Dazu lesen wir diesen aus der TIFF Vorlage aus und übergeben den Wert zum erstellen des PDF's. | |||
===Zwei PDF Dateien zu einer verbinden und umbenennen=== | ===Zwei PDF Dateien zu einer verbinden und umbenennen=== |
Version vom 6. November 2020, 11:17 Uhr
- Mantiseinträge
Keine
- Systemtyp
25
- Eintrittsinvarianz
- JA
Beschreibung
Besteht aus einem Serverjob OJOHZDOGenerischerCode. Ermöglicht dem Benutzer ein Skript ausführen zu lassen.
Der Pfad zum Batchskript muss vollständig angegeben werden
Zusätzlich werden [Quellordner] sowie [Zielordner] hierbei ersetzt.
Essentielle Felder
HZ_SKRIPT Das auszuführende Skript. z.B 'magick convert -g -f 300 [QuellOrdner] [ZielOrdner]\0001.pdf'
HZ_SKRIPTOK Resultierender Wert bei positiver Durchführung
Pane im Produktionsauftrag (FHK_Maske)
Batchfiles
Einige Serverjobs bedienen sich externer Applikationen um ihre Aufgaben erledigen zu können.
Da eine API meist fehlt, oder noch nicht über Omnis implementiert wurde, steuern wir solche externen Anwendungen gelegentlich über Windows Batch Skripte.
Damit wir eine Übersicht zu den verwendeten Skripten haben, wollen wir diese hier in dieses Dokument aufnehmen und kurz umschreiben. Wir gehen dabei nicht auf die Anwendungen ein, diese werden in einem separaten Kapitel beschrieben.
Multipage PDF Dateien aus TIFF-Dateien erzeugen
TIF —> create JPG —> create multipage PDF
Ein For Loop über eine Liste aller TIF Bilddateien aus einem Ordner ruft ImageMagick auf und übergibt den Namen der Datei und die Parameter für die Umwandlung. Die JPG werden im Quellordner der TIF Dateien erzeugt.
Kommt es bei der Umwandlung zu JPG zu Fehlern, bricht das Skript ab und löscht die bereits erstellen JPG Dateien wieder. Der Name der fehlerverursachenden TIF Datei wir in errfile.txt im Quellordner gespeichert.
Wurden alle Dateien umgewandelt wird im zweiten Schritt aus diesen wieder mit ImageMagick ein PDF erstellt. Das PDF wird im Zielpfad gespeichert.
Bei Fehlern beim Erzeugen der PDF Datei werden alle bisher erzeugten Dateien gelöscht und der Name der verursachenden JPG Datei in errfile.txt im Quellordner gespeichert.
- Skript - Multipagepdf.bat Quellpfad Zielpfad
::parameter für Pfade setzten set pathfrom=%1 set pathto=%2 :convert_to_jpg, FOR /F "tokens=*" %%G IN ('dir /b %pathfrom%\*.tif') DO ( magick mogrify -format jpg -quality 70 %pathfrom%\%%G 2>%pathfrom%\errlog.txt if errorlevel 1 ( set err=1 ECHO %%G >> %pathfrom%\errfile.txt ) ) If "%err%"=="1" ( del %pathfrom%\*.jpg echo Fehler beim JPG erstellen exit ) :create_pdf magick convert -define registry:temporary-path=d:\tmp %pathfrom%\*.jpg %pathto%\0001.pdf 2>>%pathfrom%\errlog.txt if errorlevel 1 ( del %pathfrom%\*.jpg del %pathto%\0001.pdf echo Fehler beim PDF erstellen exit ) :end del %pathfrom%\*.jpg del %pathfrom%\*.txt echo Ok exit
Alternativ dazu gibt es das Skript multipagepdf75.bat. HIer wird die Qualität des JPG auf 75% gesetzt
Alternativ dazu gibt es das Skript tiffzip2pdf.bat. Hier werden die Tiff-Dateien mit Zip-Kompression in das PDF eingesetzt. Es findet keine zwischenzeitliche Umwandlung in JPG statt.
Alternativ dazu gibt es das Skript multipagepdf2k40.bat. Hier werden die Tiff-Dateien in JPEG2000 Dateien umgewandelt mit Qualitätseinstellung 40.
Multipage PDF-Dateien aus JPG-Dateien erzeugen
- Skript - Multipagepdf2.bat Quellpfad Zielpfad
Umwandeln von TIFF-Dateien in JPG2000-Dateien
- Skript - tif2jp2.bat Quellpfad Zielpfad
Umwandeln von TIFF-Dateien in JPG-Dateien
- Skript - tif2jpg.bat Quellpfad Zielpfad
Multipage PDF-Dateien aus JPEG2000 Dateien erzeugen
- Skript - Multipagepdf2k40.bat
Beim umwandeln kann die DPI Auflösung nicht gesteuert werden, bzw. wird immer auf 72DPI gerechnet. Dies hat zur Folge, dass die Dokumente welche z.B. von 300DPI runtergerechnet wurden, anschliessend im PDF zu gross (Dokumentgrösse x(mm) - y(mm)) erscheinen. Mit der Option -Density kann beim erzeugen des PDF's der DPI Wert angegeben werden. Dazu lesen wir diesen aus der TIFF Vorlage aus und übergeben den Wert zum erstellen des PDF's.
Zwei PDF Dateien zu einer verbinden und umbenennen
Das Skript kann nur gestartet werden, wenn beide Parameter mitgegeben wurden.
- Skript - mergePDF.bat source destination
@echo off ::Randbedingungen: Es darf nur 2 Files im Ordner haben, der Beleg muss Namentlich vor der Zielpdf im Dateisystem sein ::Wurden 2 Parameter übergeben? IF [%1] == [] (exit -1) IF [%2] == [] (exit -1) :: Vars setzten set source=%1 set destination=%2 set fixedPDF=_Beleg.pdf set pdftkPath=C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe ::Existiern diese beiden Ordner? IF NOT EXIST %source% (exit -2) IF NOT EXIST %destination% (exit -3) ::Source so setzten, dass alle PDF's im Verzeichnis aufgelistet werden set sourceSearch=%source:~0,-1% set sourceSearch=%sourceSearch%\*.pdf ::Name des 2. PDF's herausfinden for /f %%a IN ('dir /b /s "%sourceSearch%"') do ( set targetPDF=%%a GOTO mergePDF ) :mergePDF ::Pfad des Beleg PDF set firstPDF=%source:~0,-1% set firstPDF=%firstPDF%\%fixedPDF% ::Pfad des Output PDF's festlegen for %%b in (%targetPDF:\= %) do set targetPDFName=%%b set destinationPath=%destination:~0,-1% set destinationPath=%destination%\%targetPDFName% ::PDF mergen "%pdftkPath%" A=%firstPDF% B=%targetPDF% cat A B output %destinationPath% 2> err.txt for /f %%i in (err.txt) do (exit -4) echo ok exit