Autor Thema: E-Mail als pdf ablegen  (Gelesen 18312 mal)

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
E-Mail als pdf ablegen
« am: 19.11.08 - 10:21:23 »
Hi zusammen,

Hab inzwischen schon einige Funktionen im Web gefunden, die mir z.B. Attachments von Mails auf der Festplatte speichern.

Jetzt bin ich allerdings noch auf der Suche nach einer Funktion, mit der ich nur Mails in pdf konvertiert auf der Festplatte speichern kann. Diese Funktion würde ich gerne in unsere Mail-Schablone integrieren, da das Geschrei danach sehr groß ist.

Das Exportieren der Mail bzw. des Inhalts ist ansich kein Problem, ich krieg das schon so hin, dass ich am Ende ein Word-Dokument habe. Aber wie krieg ich denn dann den Dreh hin, dass er automatisch das Dokument in pdf konvertiert?

Mit einem pdf-Drucker? Ja ok, aber den müsste ich ja vorher erstmal setzen? Der Benutzer soll möglichst wenig davon mitkriegen.

Danke für alle Tipps, evtl. Links usw.!

Mathias

Offline mde

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
  • Das ist Notezig
Re: E-Mail als pdf ablegen
« Antwort #1 am: 19.11.08 - 10:32:00 »
Hi,

ich habe so etwas selber noch nicht programmiert aber wenn ihr den Adobe writer auf den Clients installiert habt kann man darüber aus Notes PDF erstellen.
Schau mal hier nach:
http://searchdomino.techtarget.com/tip/1,289483,sid4_gci1176495,00.html

Gruß Michael
Erst Kopf,
dann Knopf.

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: E-Mail als pdf ablegen
« Antwort #2 am: 19.11.08 - 13:40:59 »
Hi Michael,

Danke für deinen Link! Da müsst ich nur recht viel selber machen (hab bisher noch nix mit Java usw. gemacht).
Habe irgendwie (jaja Schande über mein Haupt ;)) gehofft, dass so eine Funktion in einer fertigen Datenbank schon vorhanden ist.

Vielleicht hat ja noch jemand etwas für mich?

y20frank

  • Gast
Re: E-Mail als pdf ablegen
« Antwort #3 am: 20.11.08 - 08:50:07 »
Versuch's doch mal mit dem frei nutzbaren PDFCreator (Download aus dem Web: http://www.pdfforge.org/products/pdfcreator/download).
Das Ding kann man von Notes aus über die COM Schnittstelle ansteuern. Mach ich derzeit auch für einige Datenbanken (Beispielscript hätte ich da)... Die Notes-Dokumente und deren Office-Anhänge werden je zu einem PDF zusammengeführt und dem Notes-Dokument wieder angehängt. So werden derzeit ca. 800 Dokumente / Stunde in PDF umgewandelt.
Als kommerzielle Lösung gibt es den ePDF Server von Groupware - von dem Ding kann man halten was man will. Die Idee ist genial, die Performance allerdings ziemlich schlecht (da das Ding PDFs sequentiell konvertiert dauert es ewig, bis man 100 Dokumente als PDF zurück geliefert bekommt). Ach so, man braucht dafür natürlich auch einen eigenen Server... ;-p
LG
Frank


klaussal

  • Gast
Re: E-Mail als pdf ablegen
« Antwort #4 am: 20.11.08 - 08:57:06 »
Zitat
(Beispielscript hätte ich da)...

Vielleicht wäre es eine nette Geste, das Script in der Rubrik "Downloads" abzulegen ....

(oder soll ich mal eben nach Dortmund kommen  (15 km)  ;D  ) ?

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: E-Mail als pdf ablegen
« Antwort #5 am: 20.11.08 - 09:10:04 »
@Frank: Ja so ein Beispielscript wär schon was feines :)

y20frank

  • Gast
Re: E-Mail als pdf ablegen
« Antwort #6 am: 20.11.08 - 09:16:25 »
Script-Beispiel:

Code

Sub Initialize
	' -------------------------------------------------------------------
	' --- Deklarationen / Settings
	' -------------------------------------------------------------------	
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim doc, docPG As NotesDocument
	
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Set db = session.CurrentDatabase
	
	Dim dc As NotesDocumentCollection
	Set dc = db.UnprocessedDocuments
	
	ok = Messagebox("Wollen Sie die " & dc.Count & " ausgewählten Dokumente mit dem PDFCreator konvertieren?", 4+32, "PDFCreator | Konverter")
	If ok = 7 Then Exit Sub
	
	' -------------------------------------------------------------------
	' --- Globale Konfiguration einlesen
	' -------------------------------------------------------------------	
	Set docPG = db.GetProfileDocument("($Config)")
	
	cfg_pcspfad = docPG.cfg_PCSPfad(0)
	If Right(cfg_pcspfad, 1) <> "\" Then cfg_pcspfad = cfg_pcspfad & "\"
	
	cfg_pcsfile = docPG.cfg_PCSFile(0)
	cfg_pcsattfile = docPG.cfg_PCSAttFile(0)
	
	cfg_pcsformat = Lcase(docPG.cfg_PCSFormat(0))
	cfg_pcsfile = cfg_pcsfile & "." & cfg_pcsformat
	
	' PDFCreator "simuliert" Verwendung des PDF Servers (Felder setzen)
	cfg_pcs_epdfsim = docPG.cfg_PCS_ePDFSim(0)
	If cfg_pcs_epdfsim <> "" Then
		cfg_resultcodegw = docPG.ResultCodeGW(0)
		If cfg_resultcodegw = "" Then cfg_resultcodegw = "131"
		cfg_pcsfile = docPG.cfg_ePDF_OutputFileName(0)
	End If
	
	fpath = cfg_pcspfad	
	ffile = cfg_pcsfile
	
	' -------------------------------------------------------------------	
	
	' init PDFCreator
	Set oPDFC  = CreateObject("PDFCreator.clsPDFCreator")
	
	oPDFC.cStart("/NoProcessingAtStartup")
	oPDFC.cOption("UseAutosave") = 1
	oPDFC.cOption("UseAutosaveDirectory") = 1
	oPDFC.cOption("AutosaveFormat") = 0   	' 0=PDF, 1=PNG, 2=JPG, 3=BMP, 4=PCX, 5=TIFF, 6=PS, 7= EPS, 8=ASCII
	
	
	DefaultPrinter = oPDFC.cDefaultprinter
	oPDFC.cDefaultprinter = "PDFCreator"
	oPDFC.cClearCache
	
	oPDFC.cOption("AutosaveDirectory") = fpath
	oPDFC.cOption("AutosaveFilename") = ffile
	
	Set doc = dc.GetFirstDocument
	unid = doc.UniversalID
	
	c = 0
	Do Until doc Is Nothing
		c = c + 1
		
		oPDFC.cPrinterStop = True
		
		' document was already converted
		If doc.ePDF_flg(0) > "" Then 
			Print "Document was alreday converted!"
			Goto weiter
		End If
		
		' print NotesDocument at first ...
		i = 1
		Set uidoc = ws.EditDocument (False, doc)
		Call uidoc.Print(1)
		Call uidoc.Close(True) ' If True, the document is immediately closed. If False, closing the document may be delayed
		
		Set rtitem = doc.GetFirstItem( "Body" )
		
		If Not doc.HasEmbedded Then
			Goto no_object
		End If
		
		If Not rtitem Is Nothing And rtitem.Type = RICHTEXT Then
			Forall o In rtitem.EmbeddedObjects
				i = i + 1
				
				Print fpath & o.Name
				
				Call o.ExtractFile( fpath & o.Name )
				
				' check if attachment is printable
				isPrintable = oPDFC.cIsPrintable(fpath & o.Name)
				If isPrintable = False Then
					Print "Converting: " & unid & " " & o.Name &  " An error is occured: File is not printable! ", 0+16, ""
					Goto weiter	' Weiter mit nächstem Dokument
				End If
				
				' and now print all attachments
				Print "Printing -> " & fpath & o.Name
				
				oPDFC.cPrintfile(fpath & o.Name)
				
			End Forall
			
		End If
		
no_object:
		
		' count print jobs in queue
		Do Until oPDFC.cCountOfPrintjobs = i
			Doevents
		Loop
		
		' combine all print jobs to one document
		oPDFC.cCombineAll
		oPDFC.cPrinterStop = False
		
		' let PDFCreator print all jobs from queue
		Do Until oPDFC.cCountOfPrintjobs = 0
			Doevents
		Loop
		
		' release
		Sleep(.1)
		oPDFC.cDefaultprinter = DefaultPrinter
		oPDFC.cClearcache
		Sleep(.1)
		
		' attach created PDF file
		If cfg_pcsattfile <> "" Or cfg_pcs_epdfsim <> "" Then
			Set rtitem = doc.GetFirstItem("Body")
			
			If rtitem Is Nothing Then
				Set rtitem = doc.CreateRichTextItem( "Body" )
			End If
			
			Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", fpath & ffile )
			
			If cfg_pcs_epdfsim <> "" Then
				doc.ePDF_flg = Date$ & " " & Time$ & " PDFCreator"
				doc.ResultCodeGW = cfg_resultcodegw
			End If
			
			Call doc.Save( True, True )
			
		End If
		
		Print "Converting document " & c & " / " & dc.Count
		
		
weiter:
		Sleep(1)
		
		Set doc = dc.GetNextDocument(doc)
		
	Loop
	
	Set oPDFC = Nothing
	
	Print dc.Count & " Dokumente verarbeitet."
	
	Dim uiview As NotesUIView
	Set uiview = ws.CurrentView
	Call uiview.DeselectAll
	
	Exit Sub
	
	
error_handle:
	' Handle your own error handle ... ;-p
	
End Sub


klaussal

  • Gast
Re: E-Mail als pdf ablegen
« Antwort #7 am: 20.11.08 - 09:27:53 »
Danke !  :D :D :D

y20frank

  • Gast
Re: E-Mail als pdf ablegen
« Antwort #8 am: 20.11.08 - 09:45:04 »
Gerne.... Script müsst ihr aber noch anpassen , denke aber der kern ist allgemein brauchbar.
Gruß nach Herne (hoch lebe der Pott).,

LG
Frank

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: E-Mail als pdf ablegen
« Antwort #9 am: 21.11.08 - 10:44:22 »
Ok danke :)
Mal schauen was sich daraus basteln lässt :)

Offline stf

  • Frischling
  • *
  • Beiträge: 31
  • Geschlecht: Männlich
Re: E-Mail als pdf ablegen
« Antwort #10 am: 21.11.08 - 12:51:20 »
Hi Frank,

schönes Script...

habe mich mit meinen begrenzten Möglichkeiten darüber hergemacht und habe prompt ein Problem....

Bei mir bleibt das Script hängen wenn ich Dateien mit Anhang umwandle
und zwar bei (glaube ich)
      ' count print jobs in queue
      Do Until oPDFC.cCountOfPrintjobs = i
         Doevents
      Loop
hängen bleiben heißt: Prozessorauslastung geht hoch und LN lässt sich nicht mehr kontrollieren
mit STRG + Unterbrechen kann ich das dann beenden.

Wenn ich o.g. Teil rausnehme, werden nicht alle ausgewählten Mails konvertiert...(sondern wenn ich Glück habe nur das erste)

Bei Mails ohne Anhang funktioniert das Script (ohne den oberen Teil)

Kannst Du Dir einen Reim darauf machen?

Übrigens: LN Vers. 7.03 PDFCreator 0.9.6

Danke
Stefan

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: E-Mail als pdf ablegen
« Antwort #11 am: 21.01.09 - 13:19:39 »
Danke für das Script.
Ich habe es umgebaut und passt soweit fast perfekt.
Nur wird bei mir leider oPDFC.cCombineAll und oPDFC.cPrinterStop = True/False nicht gemacht.
Die Com Hilfe gibt leider nicht so viel her. Setzen die zwei befehle irgendwas voraus ?
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Christopher

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.060
  • Geschlecht: Männlich
  • Dumm ist der, der dummes tut.
Re: E-Mail als pdf ablegen
« Antwort #12 am: 21.01.09 - 19:47:06 »
such mal bei openntf iText da gibt es eine Java Lösung hat den Vorteil Du mußt nix installiert haben ....
Client & Server R 5.011
Principal Certified Lotus Professional R5 System Administration
Microsoft Certified Systems Engineer 2000
Microsoft Certified Systems Administrator 2000
Microsoft Certified Systems Administrator 2003
Microsoft Certified Systems Engineer 2003

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: E-Mail als pdf ablegen
« Antwort #13 am: 22.01.09 - 15:25:09 »
Danke. Aber ich denke, da ich nun mit dem script schon eine optimale lösung habe macht es nicht viel Sinn, kurz vor Abschluss auf eine andere Möglichkeit zu setzen.

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz