panguu
Goto Top

Windows-Tool gesucht, Ordnerinhalt ständig überprüfen und von PDF nach TIFF konvertieren

Hi Leute,

kennt jemand ein Tool, dass ich auf einem Windows-Betriebssystem installieren könnte und ihm einen Pfad zur Überwachung mitgebe? Es soll ständig überprüfen ob da neue Dateien reinkommen, und falls dort PDFs reingesetzt werden (per Windows-Freigabe von entfernten PCs) soll das Tool automatisch diese PDFs nach TIFF konvertieren mit bestimmten Kriterien (300 Pixel, scharz-weiss, usw...)

Unter Linux gäbe es sicherlich einfachere Möglichkeiten, aber ich wüßte nicht welches Windows-Tool so etwas machen kann. Bin für jeden Tip dankbar.

Content-ID: 207896

Url: https://administrator.de/contentid/207896

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

facebraker
facebraker 12.06.2013 aktualisiert um 14:03:21 Uhr
Goto Top
Hallo,

schau Dir das doch mal an:

http://de.softuses.com/7687

ich würde dann noch ein VB.NET Skript/Daemon drum herum bauen.
Einfach, du startest einen geplanten Task aller z.B. 10min.

Ich glaube wenn du die Kommentare durchgehst findest du 100%tig eine Lösung.

Gruß Alex
panguu
panguu 12.06.2013 um 14:07:01 Uhr
Goto Top
Kann kein VB, werde mir aber den Link mal ansehen. Wenn jemand noch mehr Tips hat, bin ich ganz Ohr
departure69
departure69 12.06.2013 aktualisiert um 14:25:41 Uhr
Goto Top
Hallo.

Meines Wissens beherrscht IrfanView solche Umwandlungen UND kann per Cli angesprochen werden. Du mußt dann nur den richtigen Befehl finden (der Autor von IrfanView hat da einiges dokumentiert), dann reicht ein cmd-Skript, ganz ohne VB.

Edit:

Er hat es dokumentiert, schaut relativ einfach zu bewerkstelligen aus:

/convert=filename - convert input file(s) to "filename" and CLOSE IrfanView
(Note: See pattern help file page for more options)

Oder hier noch ein konkretes Beispiel:i_view32.exe c:\*.pdf /convert=d:\temp\*.tif


Damit IrfanView PDF lesen kann, mußt Du allerdings noch 2-3 Dinge tun:

- das IrfanView-Plugin "RIOT" installieren

- Ghostscript in der aktuellen 32-Bit-Version installieren

- in IrfanView kontrollieren (und ggf. korrigieren), ob der richtige Pfad zur Ghostscript-DLL eingestellt ist (sie heißt "gsdll32.dll"), in IrfanView kommst Du per
Optionen / Einstellungen / Plugins / Postscript Optionen / Custom Path ... an die Einstellungen heran


Das fertige cmd-Skript in den Taskplaner, alle x Minuten ausführen lassen (wie @facebraker schon vorschlug).


Grüße
facebraker
facebraker 12.06.2013 um 14:33:28 Uhr
Goto Top
Einfach geht es doch ohne Irfan.
Einfach Ghostscript installieren und:

gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=output_file_name.tif input_file_name.pdf

Das in ein Powershell-Skript, ist auch mit in meinen Link oder in eine Batch-Datei schreiben und vom Taskplaner ausführen lassen.

Fertig.

Gruß Alex
panguu
panguu 12.06.2013 aktualisiert um 15:40:52 Uhr
Goto Top
Hi nochmal,

also mit dem Taskplaner muss ich als letztes dann schauen, wie das funktioniert. Wobei ich dann dort angeben müßte, alle 2min ausführen. Ich hab mir jetzt Powershell 1.0 für Windows XP un Ghostscript 9.07 für 32bit OS auf meinem windows XP 32bit installiert.

Ich habe ein Verzeichnis erstellt E:\Scan_PDF2TIFF in welchem per Windows-Freigabe die PDFs abgelegt werden sollen.

Meine Batchdatei "C:\convert_pdf2tiff.psl" sieht so aus:

$tool = 'C:\Program Files\gs\gs9.07\bin\gswin32c.exe'  
$pdfs = get-childitem . -recurse | where {$_.Extension -match "pdf"}  

foreach($pdf in $pdfs)
{

    $tiff = $pdf.FullName.split('.') + '.tiff'  
    if(test-path $tiff)
    {
        "tiff file already exists " + $tiff  
    }
    else        
    {   
        'Processing ' + $pdf.Name          
        $param = "-sOutputFile=$tiff"  
        & $tool -q -dNOPAUSE -sDEVICE=tiffg4 $param -r300 $pdf.FullName -c quit
    }
}

Wenn ich nun in einem DOS-Fenster, also in einem cmd-Fenster "powershell c:\covert_pdf2tiff.psl" eingebe erhalte ich die Fehlermeldungen:

Die Benennung "convert_pdf2tiff.psl" wurde nicht als Cmdlet, Funktion, ausführbares Programm oder Skriptdatei erkannt. Überprüfen Sie die Benennung, und versuchen Sie es erneut. Bei Zeile:1 Zeichen:20

Was habe ich vergessen?
facebraker
facebraker 12.06.2013 um 15:38:48 Uhr
Goto Top
PRobiere das mal als Batchdatei auszuführen

for %VERZEICHNIS WO DIE PDFS LIEGEN% %%f in (*.pdf) DO gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

Habe jetzt nur ohne Ghostscript getestet.

Alternativ wechselst du in das Verzerichnis cd c:/Import-PDF
und dann führst du oben den Befehl ohne %VERZEICHNIS WO DIE PDFS LIEGEN% aus.

Gruß Alex
panguu
panguu 12.06.2013 aktualisiert um 16:25:25 Uhr
Goto Top
C:\test.bat:

@echo off
cls
SET VERZEICHNIS=E:\Scans_PDF2TIFF
for %VERZEICHNIS% %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

Krieg ich die Fehlermeldung:
E:\Scans_PDF2TIFF ist syntaktisch an dieser Stelle nicht verarbeitbar.


EDIT: so funktionierts:

@echo off
cls
e:
cd \Scans_PDF2TIFF
for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

wobei ich jetzt das Problem habe, dass mir die ausgegegeben TIFF-Datei auf 300x300 Pixel beschränkt wurde. Ich hatte mich falsch ausgedrückt. Ich wollte eigentlich die Qualitätsstufe 300Pixel haben. Stattdessen wurde mir mit dem oben genutzten Befehl das Bild auf 300x300 Pixel beschnitten face-smile welcher Schalter ist also richtig?

EDIT2: es ist -r300x300 statt -g300x300

Könnt ihr mir noch verraten, was die verschiedenen TIFF Devices die es gibt, bewirken? Ich hab das Problem, dass beim Konvertieren auf schwarz-weiss eine falsche Methode angewandt wird. Ich hab jetzt statt tiffg4 auch tiffg3 probiert, das war aber nur noch schlimmer. Ich möchte gerne 50% Dithering haben bei der Konvertierung. Momentan siehts aber aus, dass mit tiffg4 Grautöne verwendet werden. Wie und mit welchem device muss ich dem Ghostscript beibringen, dass er mir in schwarz/weiss konvertieren soll?
facebraker
facebraker 12.06.2013 um 16:20:49 Uhr
Goto Top
Hier schau mal:

Other raster file formats and devices

bit Plain bits, monochrome
bitrgb Plain bits, RGB
bitcmyk Plain bits, CMYK
bmpmono Monochrome MS Windows .BMP file format
bmpgray 8-bit gray .BMP file format
bmpsep1 Separated 1-bit CMYK .BMP file format, primarily for testing
bmpsep8 Separated 8-bit CMYK .BMP file format, primarily for testing
bmp16 4-bit (EGA/VGA) .BMP file format
bmp256 8-bit (256-color) .BMP file format
bmp16m 24-bit .BMP file format
bmp32b 32-bit pseudo-.BMP file format
cgmmono Monochrome (black-and-white) CGM -- LOW LEVEL OUTPUT ONLY
cgm8 8-bit (256-color) CGM -- DITTO
cgm24 24-bit color CGM -- DITTO
jpeg JPEG format, RGB output
jpeggray JPEG format, gray output
miff24 ImageMagick MIFF format, 24-bit direct color, RLE compressed
pcxmono PCX file format, monochrome (1-bit black and white)
pcxgray PCX file format, 8-bit gray scale
pcx16 PCX file format, 4-bit planar (EGA/VGA) color
pcx256 PCX file format, 8-bit chunky color
pcx24b PCX file format, 24-bit color (3 8-bit planes)
pcxcmyk PCX file format, 4-bit chunky CMYK color
pbm Portable Bitmap (plain format)
pbmraw Portable Bitmap (raw format)
pgm Portable Graymap (plain format)
pgmraw Portable Graymap (raw format)
pgnm Portable Graymap (plain format), optimizing to PBM if possible
pgnmraw Portable Graymap (raw format), optimizing to PBM if possible
pnm Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM
if possible
pnmraw Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM
if possible
ppm Portable Pixmap (plain format) (RGB)
ppmraw Portable Pixmap (raw format) (RGB)
pkm Portable inKmap (plain format) (4-bit CMYK => RGB)
pkmraw Portable inKmap (raw format) (4-bit CMYK => RGB)
pksm Portable Separated map (plain format) (4-bit CMYK => 4 pages)
pksmraw Portable Separated map (raw format) (4-bit CMYK => 4 pages)
    • plan9bm Plan 9 bitmap format
    pngmono Monochrome Portable Network Graphics (PNG)
    pnggray 8-bit gray Portable Network Graphics (PNG)
    png16 4-bit color Portable Network Graphics (PNG)
    png256 8-bit color Portable Network Graphics (PNG)
    png16m 24-bit color Portable Network Graphics (PNG)
    psmono PostScript (Level 1) monochrome image
    psgray PostScript (Level 1) 8-bit gray image
    psrgb PostScript (Level 2) 24-bit color image
    tiff12nc TIFF 12-bit RGB, no compression
    tiff24nc TIFF 24-bit RGB, no compression (NeXT standard format)
    tifflzw TIFF LZW (tag = 5) (monochrome)
    tiffpack TIFF PackBits (tag = 32773) (monochrome)


    Mehr unter dieser Seite:

    http://www.gnu.org/software/ghostscript/devices.html

    Für Dich würde tiffpack passen = monochrome, und eigentlich würde r300 reichen.

    Gruß Alex
panguu
panguu 12.06.2013 aktualisiert um 16:39:12 Uhr
Goto Top
komisch, wenn ich als device tiffpack oder tifflzw angebe, konvertiert er nicht. Er bringt mir den Fehler:

unrecoverable error: undefined in .getdeviceparams
...

und so 'n Kram face-sad

Ich hab auch die Seite http://ghostscript.com/doc/current/Devices.htm#TIFF überprüft, finde aber keine hilfreichen Infos über diesen Fehler. Er tritt nur dann auf, wenn ich als device tiffpack oder tifflzw einsetze. So ein Mist face-sad dabei brauch ich grad das --> schwar/weiss Konvertierung
facebraker
facebraker 12.06.2013 um 16:34:44 Uhr
Goto Top
Stimmt bei mir auch nicht face-confused

dann nimm doch tiffg4 sieht auch nicht schlecht aus!

Gruß Alex
panguu
panguu 12.06.2013 um 16:39:49 Uhr
Goto Top
Geht leider nicht, eine andre Soft benötigt die Dateien, dass muss ZWINGEND in 300x300 Qualitätsstufe und schwarz-weiß sein. Keine Grauschattierungen.
facebraker
facebraker 12.06.2013 um 16:40:39 Uhr
Goto Top
Tja dann müssen wir mal suchen face-wink
panguu
panguu 12.06.2013 aktualisiert um 16:46:15 Uhr
Goto Top
ist das ein Bug in Ghostscript? Oh Mann, jetzt hab ichs dank deiner Hilfe bis hierhin geschafft, um festzustellen dass Ghostscript nicht korrekt konvertieren kann (in schwarz/weiß) *facepalm*

Eventuell kann dasselbe auch mit Imagemagick realisiert werden? Ich finde jedoch keine Info darüber, dass Imagemagick von PDF nach TIFF konvertiert ?
http://www.imagemagick.org/script/convert.php
facebraker
facebraker 12.06.2013 um 16:52:54 Uhr
Goto Top
Bisschen komisch aber probiere mal tiffsep erzeugt seperate Farben u.a. auch schwarz, die anderen Farben löscht du in der Batchdatei, da weißt du ja wie sie heißen face-wink
facebraker
facebraker 12.06.2013 um 17:01:37 Uhr
Goto Top
Also einfach

del %%f(Cyan).tiff
del %%f(Magenta).tiff
del %%f(Yellow).tiff

Zwar bisschen Guerilla - Skripting, aber was solls
panguu
panguu 12.06.2013, aktualisiert am 13.06.2013 um 09:20:04 Uhr
Goto Top
Ich werd das mit dem "tiffsep" device auch probieren, momentan bin ich aber mit ImageMagick am Probieren. Bin auch schon ganz gut vorangeschritten, aber an einem Punkt hapert's noch. Die Umwandlungen sehen alle so aus:

a16357ae4199083ce5b0e7beb3562e8b

es ist immer so ein leichter grauer Schleier um die Buchstaben vorhanden. Hab mit Dithering probiert, ohne, an der Kompression liegts auch nicht denn das Problem tritt auch auf wenn ich OHNE Kompression vorgehe. Ich hab auch threshold 50% probiert, aber irgendwie krieg ich immer diesen grauen Schleier, auch mit verschiedenen PDFs probiert. Irgendeine Idee wonach ich da zu suchen habe in den Konvertierungseinstellungen?

EDIT auch mit ghostscript und tiffsep sieht das Bild so aus. Um die Schrift ist immer so eine Kontur vorhanden, das ist ätzend. Hab jetzt grad zig verschiedene Optionen auch mit ghostscript probiert, bisher erfolglos. Weiß jemand welche Option das ist, damit dieser Konturschleier um die Buchstaben verschwindet??

EDIT2 Und was mich bei Ghostscript auch noch stört an dieser Befehlszeile hier
for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

ist, dass die ausgegebene Datei noch beispiel.pdf.tiff heißt. Imagemagick macht das richtig, da wird das .pdf einfach mit .tiff ersetzt. Wie kann ich dem Ghostscript sagen, er soll das ebenso machen?

also statt:
Eingabe=beispiel.pdf Ausgabe=beispiel.pdf.tiff

soll es sein:
Eingabe=beispiel.pdf Ausgabe=beispiel.tiff


??
facebraker
facebraker 13.06.2013 um 09:47:40 Uhr
Goto Top
Guten Morgen,

bei mir funktioniert es aus test.pdf wird test.tif?

Stört der Grauschleier dein Programm denn, bringt es da eine Fehlermeldung?

Gruß Alex
facebraker
facebraker 13.06.2013 um 09:51:03 Uhr
Goto Top
Zitat von @panguu:
EDIT2 Und was mich bei Ghostscript auch noch stört an dieser Befehlszeile hier
for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -g300x300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff
%%f


Ist das die richtige Zeile, den da steht g300x300 drin anstat r300x300 und bei mir läuft das mit der Endung?
panguu
panguu 13.06.2013 um 12:09:46 Uhr
Goto Top
Hatte es falsch kopiert, ich verwende natürlich -r300 für die Auflösung. Das ist also nicht die Ursache (war nur falsch aus den geposteten Zeilen weiter oben von mir übernommen). Also Ghostscript hängt einfach .tiff zu dem eigentlich Dateinamen an. Die Zeile bestätigt dies doch:

for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -r300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

Ausgabedatei ist gleich der eingelesene Dateiname innerhalb der Schleife mit dem Suffix .tiff

Ich wundere mich, dass es bei dir richtig funktionieren (kann) ?
facebraker
facebraker 13.06.2013 um 13:55:12 Uhr
Goto Top
Zitat von @panguu:
for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -r300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff %%f

IMHO sollte es funktionieren:

for %%f in (*.pdf) DO C:\Programme\gs\gs9.07\bin\gswin32c -dNOPAUSE -q -r300 -sDEVICE=tiffg4 -dBATCH -sOutputFile=%%f.tiff
panguu
panguu 13.06.2013 um 16:57:35 Uhr
Goto Top
Leider nein. Ist zwar nicht soooo weltbewegend, aber erwähnenswert gewesen. Wie auch immer, mein feedback hierzu:

habe mir ein Skript geschrieben (Batchdatei unter Windows, ohne Powershell, default cmd.exe) und arbeite mit ImageMagick. Mit Ghostscript hats ums Verrecken nicht geklappt. Mit ImageMagick hab ich es endlich nach meinen Wünschen hinbekommen. Man merkt, dass ImageMagick schon etwas länger beim Konvertieren braucht. Der GS war da echt ratzfatz fertig, beim IM wartet man schon so ca. 5-6s pro Datei. Stört mich aber nicht, da ja nicht massig viele Dateien eintreffen täglich sondern verteilt über mehrere Tage.

Nochmals danke dir für deine Unterstützung.

Grüße,
Pangu.