37414
Goto Top

PDF-Dokument in Tiff konvertieren und in einem Verzeichnis ablegen - als Funktion

Hallo,

wir nutzen ein neu für uns erstelltes Programm auf Java-Basis.

Es sollen u.a. PDF-Dokumente zu Tiff´s konvertiert und dann in einem bestimmten Verzeichnis dieses Programms abgelegt werden.
Das Verzeichnis lautet wie folgt:

s:\archiv\aida\scans\benutzername

(hierbei ist "benutzername" der Anmeldename des jeweiligen Users.)

Am besten wäre es, wenn dies über ein kleines Skript realisiert werden könnte, welches PDF --> Tiff konvertiert und dann in das Verzeichnis ablegt.

Die Dokumente kommen bei uns z.B. per Email an und die PDF´s hängen dann als Emai-Anhang an.

Es sollen jedoch (im Fall von Emails) nicht nur die PDF-Anhänge als Tiff in das entsprechende Verzeichnis kommen, sondern auch der eigentliche Text aus der Email.
Dieser muss dann quasi auch im Tiff-Format in das entsprechende Verzeichnis abgelegt werden.

Ebenso kommen bei uns auch Faxe in Outlook an, die auf die gleiche Weise (im Moment per FreePDF) als Tiff in die entsprechenden Verzeichnisse abgelegt werden.


Unsere bisherige Lösung:

Im Moment machen wir das mit dem Programm "FreePDF".
Dieses druckt quasi das PDF-Dokument als Tiff in das entsprechende Verzeichnis.


Die Lösung mit FreePDF macht jedoch ständig Probleme und ist sehr langsam.
Bei größeren Anhängen bricht FreePDF ab, manchmal hängt es sich auf... es ist halt nervig face-wink

Wäre schön, wenn jemand von Euch eine bessere Lösung für das Problem hat.

Danke und schöne Grüße,
imebro

Content-Key: 301539

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

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: 114757
114757 12.04.2016 aktualisiert um 10:52:28 Uhr
Goto Top
ImageMagick oder Ghostscript sind deine Freunde:

ImageMagick:
convert foo.pdf bar.tiff

Ghostscript:
gs -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=bar.tif foo.pdf -c quit
Gruß jodel32
Mitglied: 37414
37414 12.04.2016 um 11:04:16 Uhr
Goto Top
Dank Dir "jodel32".

Ghostscript ist bereits installiert, da es von "FreePDF" auch benötigt wird.

Wo / wie muss ich denn nun den von Dir angegebenen Code in ImageMagick bzw. Ghostscript eintragen?
Und... wie binde ich das Ausgabeverzeichnis (siehe mein erster Post) ein?

Danke und Gruss,
imebro
Mitglied: 114757
114757 12.04.2016 aktualisiert um 11:12:56 Uhr
Goto Top
Zitat von @37414:
Wo / wie muss ich denn nun den von Dir angegebenen Code in ImageMagick bzw. Ghostscript eintragen?
Na in dein Skript face-smile
Und... wie binde ich das Ausgabeverzeichnis (siehe mein erster Post) ein?
Na den Pfad in den Befehlszeilen angeben face-wink

Is heut schon Freidaach ?
Mitglied: 37414
37414 12.04.2016 um 11:16:49 Uhr
Goto Top
Hallo,

vielleicht habe ich mich missverständlich ausgedrückt face-wink

Es gibt kein Script...
Bisher drucken wir einfach die Email oder halt das PDF im Anhang auf dem "FreePDF"-Drucker aus und dieser druckt Beides dann als Tiff in das von mir angegebene Verzeichnis.

Ich müßte also ein Script erstellen.
Könnte das eine Batchdatei sein?

Habe eben "ImageMagick" installiert.
Hast Du vielleicht noch einen Tipp, wie ich Deine Infos jetzt damit und mit GhostScript zusammen bekomme? face-smile

Danke,
imebro
Mitglied: 114757
114757 12.04.2016 aktualisiert um 11:52:05 Uhr
Goto Top
Outlook VBA Makro erstellen das bei eintreffenden Mails anspringt, die PDF-Attachments extrahiert und dann an die Befehle verfüttert.

Solche Skripte um in Outlook Attachments zu extrahieren findest du hier im Forum sehr viele. Einfach mal die Suchfunktion benutzen.

Suchwörter: Outlook, NewMail, NewMailEx, Attachments
Mitglied: 37414
37414 12.04.2016 um 12:32:38 Uhr
Goto Top
Danke nochmal...

Besser wäre es, wenn man das Skript manuell für eine Email starten könnte, da auch eine Menge Emails ankommen, die nicht in dieses Verzeichnis gedruckt werden sollen.

LG
imebro
Mitglied: 114757
114757 12.04.2016 aktualisiert um 12:42:43 Uhr
Goto Top
Zitat von @37414:
Besser wäre es, wenn man das Skript manuell für eine Email starten könnte, da auch eine Menge Emails ankommen, die nicht in dieses Verzeichnis gedruckt werden sollen.
Klar das kannst du natürlich auch machen. Mit ActiveInspector.CurrentItem kommst du an das gerade geöffnete Element eines Inspector-Windows.

Befehle ausführen kannst du dann mit
set shell = CreateObject("Wscript.Shell")  
shell.Run "DEIN BEFEHL"  
Mitglied: colinardo
colinardo 12.04.2016 aktualisiert um 13:37:24 Uhr
Goto Top
Hallo imebro,
mit dem Makro hier kannst du die Attachments eines bestimmten Typs einer in Outlook geöffneten Mail in einem Zielverzeichnis mit ImageMagick konvertiert ablegen:
Sub ConvertPDFAttachmentsForOpenMailItem()
    'Variablen  
    Dim att As Attachment, mItem As MailItem, fso As Object, objShell As Object, strTargetPath As String, strTempPath As String
    
    'Pfad zur convert.exe von ImageMagick  
    Const IMAGEMAGICK = "C:\Program Files\ImageMagick-6.8.4-Q16\convert.exe"  
    
    'Zielpfad für die Konvertierung  
    strTargetPath = "s:\archiv\aida\scans\" & Environ("Username")  
    
    ' Objekte erstellen  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Set objShell = CreateObject("Wscript.Shell")  
    
    ' Zielordner für die Konvertierung erstellen falls nicht vorhanden  
    If Not fso.FolderExists(strTargetPath) Then MkDir strTargetPath
    
    Set itm = ActiveInspector.CurrentItem
    ' Wenn das Item im aktuellen Inspektor ein Mailitem ist  
    If itm.Class = olMail Then
        Set mItem = itm
        For Each att In mItem.Attachments
            ' Wenn Attachment ein PDF ist dann ...  
            If LCase(fso.GetExtensionName(att.FileName)) = "pdf" Then  
                ' Temporäres Zielverzeichnis des Attachments festlegen  
                strTempPath = Environ("Temp") & "\" & att.FileName  
                'Zielpfad und Dateiname für die Ziel-Datei festlegen  
                strTargetPath = strTargetPath & "\" & fso.GetBasename(att.FileName) & "_" & Format(Now(), "dd.mm.yyyy_hh_nn_ss") & ".tiff"  
                ' Speichere das Attachment im TEMP-Verzeichnis  
                att.SaveAsFile strTempPath
                ' konvertiere das Attachment  
                objShell.Run """" & IMAGEMAGICK & """ """ & strTempPath & """ """ & strTargetPath & """", 0, True  
            End If
        Next
        msgbox "Export erledigt",vbInformation  
    End If
End Sub
Weitere Anpassung kann ich dir gerne umsetzen. Das ist dann jedoch von meiner Seite her nicht mehr kostenlos. Bei Interesse einfach PM.

Viel Erfolg
Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Mitglied: 37414
37414 12.04.2016 um 13:35:54 Uhr
Goto Top
Hallo,

habe jetzt eine zeitlang herum probiert...
Bin kein Programmierer und so wirklich ist mir noch nicht klar, was ich nun genau machen muss.

Habe jetzt in meinem Outlook die Entwicklertools aktiviert und auch Makros.
Dann habe ich bezüglich "ActiveInspector.CurrentItem" recherchiert und u.a. einen Code gefunden:

Sub CloseItem() 
 
 Dim myItem As Object 
  
 Set myItem = Application.ActiveInspector.CurrentItem 
 
 myItem.Close olSave 
 
End Sub

Wie bringe ich all das nun mit Deinem letzten Code zusammen?

set shell = CreateObject("Wscript.Shell")  
shell.Run "DEIN BEFEHL"  

Die Funktion sollte sein:

- Email öffnen per Doppelklick in Outlook
- Email drucken im Tiff-Format ins Verzeichnis "s:\archiv\aida\scans\%user%"
- Email-Anhänge (z.B. PDF) als Tiff´s drucken ins gleiche Verzeichnis

Sorry, aber bisher habe ich mal ein paar kleine Batchdateien geschrieben, aber nicht wirklich professionell face-wink

Danke und Gruss,
imebro
Mitglied: 114757
114757 12.04.2016 aktualisiert um 13:48:49 Uhr
Goto Top
Sorry, aber bisher habe ich mal ein paar kleine Batchdateien geschrieben, aber nicht wirklich professionell
Dann besorg dir einen Programmierer der das für dich macht oder nehm das Luxus-Skript "Frei Haus" von @colinardo oben, das ist ja schon eine Steilvorlage face-wink
Mitglied: 37414
37414 12.04.2016 um 14:35:22 Uhr
Goto Top
Danke Dir face-wink

Das Script oben hatte ich offenbar übersehen...
Mitglied: 37414
37414 12.04.2016 um 15:02:09 Uhr
Goto Top
Hallo Uwe und danke für Deine Mühe.

Funktioniert tatsächlich sehr gut, das Script.
Leider ist die Qualität der erzeugten Tiffs sehr schlecht.
Und wenn ich das erstellte Tiff manuell aufrufe, erscheint für die letzten beiden Seiten von 6 Seiten eine Fehlermeldung, die auf Ghostscript hinweist.

S:\ARCHIV\AidA\scans\user\C -Users-AppData-Local-Microsoft-Windows-Temporary Internet Files-Content.Outlook-JS2711GE-Fax (3).pdf : Dekodierungsfehler !

Can't load Ghostscript or Ghostscript error.  

Install Ghostscript from:

http://sourceforge.net/projects/ghostscript/
or
http://sourceforge.net
---------------------------
OK   
---------------------------

LG
imebro
Mitglied: 114757
114757 12.04.2016 aktualisiert um 15:06:51 Uhr
Goto Top
Naja das kannst du ja durch Ersetzen des ImageMagick-Befehls durch den direkten Aufruf von GS ändern.
Da gibt es meines Erachtens auch Qualitätsparameter.
Mitglied: 37414
37414 13.04.2016 um 08:31:52 Uhr
Goto Top
Hallo und danke...

Ist alles noch nicht so optimal. Aber das liegt an unserem Programm, welches noch in der Entwicklungsphase ist face-wink

LG
imebro
Mitglied: 114757
114757 13.04.2016 aktualisiert um 10:10:48 Uhr
Goto Top
Zitat von @37414:
Ist alles noch nicht so optimal. Aber das liegt an unserem Programm, welches noch in der Entwicklungsphase ist face-wink
Gut dann lass die Jungs mal entwickeln ...ist ja nicht unser Problem face-wink