Für ein deutsches Unternehmen wurde 7-PDF Printer als Netzwerkdrucker eingerichtet um diesen aus SAP für den PDF-Rechnungsversand zu nutzen. Die erzeugten PDF Dokumente wurden dabei nach Ihrer Erzeugung mittels SMTP an einen Faxserver übertragen und von diesem versendet. Die Faxnummer wurde von 7-PDF Printer zuvor vom Anwender per Input-Box angefragt und im VB-Script an den Faxserver weitergereicht.

Dieses Beispiel zeigt, wie mit wenigen Zeilen VBScript Code recht komplexe Prozesse mit 7-PDF Printer abgebildet werden können. Das nachfolgende Macro sollte auch als Grundlage dienen können, wenn Sie planen gedruckte PDF Dokumente automatisch per eMail versenden zu wollen.

Direkt gehts' nun auch!

Ab Version 12 die Ende Oktober 2020 erschienen ist, können sie auch direkt einen SMTP Server ganz ohne VBScript ansprechen, oder aber auch dynamisch den SMTP Server per VBScript zur Laufzeit ändern. Weitere Infos dazu finden sie hier...

  1. Dim global_success, faxnr, SMTPServer, Recipient, From, Subject, Message
  2.  
  3. Sub OnConfigLoaded()
  4.     Rem -- Modify the configuration to extract text from the printer
  5.     Rem -- output.
  6.    
  7.     faxnr = InputBox("Faxnummereingabe (ohne Sonder- und Leerzeichen):", "Rechnung senden")
  8.    
  9.    Context("Config")("showsettings") = "never"
  10.     Context("Config")("showpdf") = "no"   
  11.     Context("Config")("output") = "C:\pdf-processing\print\<date>-<time>.pdf"
  12.     Context("Config")("superimpose") = "C:\pdf-processing\print\background.pdf"
  13.     Context("Config")("author") = "<username>"
  14.     Context("Config")("confirmoverwrite") = "no"
  15.     Context("Config")("mergefile") = "C:\pdf-processing\print\agb.pdf"
  16.     Context("Config")("mergeposition") = "top"
  17.    
  18. End Sub
  19.  
  20. Sub OnSuccess()
  21.   global_success = true
  22. End Sub
  23.  
  24. Sub OnAfterPrint()
  25.    
  26.   If global_success Then
  27.    
  28.     Rem -- Absender <username>@mailserver.de
  29.     Rem -- Empfänger faxnr@fax.local
  30.    
  31.     SMTPServer = "smtp.mailserver.local"
  32.     Recipient = faxnr & "@fax.local"
  33.     From = Context("DocumentAuthor") & "@mailserver.de"
  34.     Subject = "Ihre SAP Rechnung"
  35.     Message = "Anbei erhalten Sie Ihre SAP - Rechnung fuer den
  36. Technikerauftrag des Technikers " & Context("DocumentAuthor")
  37. & vbcrlf & "Vielen Dank fuer Ihren Auftrag!"
  38.  
  39.     set msg = CreateObject("CDO.Message")
  40.     msg.From = From
  41.     msg.To = Recipient
  42.     msg.Subject = Subject
  43.     msg.TextBody = Message
  44.    
  45.     ' To add an attachment uncomment this line
  46.     msg.AddAttachment Context("OutputFileName")
  47.  
  48.     msg.Configuration.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
  49.     msg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  50.     msg.Configuration.Fields.Update
  51.  
  52.     msg.Send
  53.    
  54.     MsgBox "Die Rechnung wurde versendet."
  55.    
  56.     ' Del PDF
  57.     Set objFSO = CreateObject("Scripting.FileSystemObject")
  58.     objFSO.DeleteFile(Context("OutputFileName"))
  59.    
  60.   Else
  61.    
  62.     MsgBox "Ein Fehler beim Rechnungsversand ist aufgetreten. Bitte versuchen Sie es erneut!"
  63.    
  64.   End If
  65.  
  66. End Sub

Beispieldatei Download

Sie können den Beispielcode herunterladen. Die darin enthaltene VBS-Macrodatei verschieben Sie nach dem Entpacken bitte in den macros Ordner des PDF-Druckers (im Installationsverzeichnis). Sie können auch mit der Einstellung MacroDir ein anderes Verzeichnis festlegen.

Downloads

Anhang Größe
Codebeispiel herunterladen 1.1 KB

Top