Das Notes Forum

Lotus Notes / Domino 9 => ND9: Entwicklung => Thema gestartet von: Schnubbel am 22.01.21 - 11:28:31



Titel: Dokument als PDF in einen Ordner drucken ohne Abfrage
Beitrag von: Schnubbel am 22.01.21 - 11:28:31
 Hallo,

ich würde gerne ein Notesdocument in einen Ordner als PDF-Datei drucken.

Der User soll lediglich einen Button drücken und dann soll das Notesdocument als PDF-Datei in einem Ordner landen.

Jemand eine Idee wie so etwas ginge?

Ein kleiner Schubser in die richtige Richtung wird wahrscheinlich schon reichen :)

Danke !


Titel: Re: Dokument als PDF in einen Ordner drucken ohne Abfrage
Beitrag von: Patrick Schneider am 22.01.21 - 11:46:34
Hallo,

eine Option (nicht kostenlos) ist PD4ML
https://pd4ml.com/notesagent.htm
Das ist gut dokumentiert und lässt sich einfach einbinden, "druckt" das Dokument nicht, sondern erzeugt ein PDF.

Wenn man einigermaßen Java-firm ist, kann man das wohl auch selbst mit sowas wie Apache PDFBox hinbekommen (https://pdfbox.apache.org/)

Eine Lösung ohne Programmierung ist ein "echter" PDF-Drucker wie PDF Creator. Dort kann man Automatismen hinterlegen (wie z.B. das erzeugte Dokument automatisch auf einen Pfad ablegen. Der Dateiname lässt sich dann aus Bausteinen (Autor, Datum, Titel, ...) zusammenbauen.

Viel Erfolg,
Patrick


Titel: Re: Dokument als PDF in einen Ordner drucken ohne Abfrage
Beitrag von: Schnubbel am 27.01.21 - 11:44:28
Hallo,
erstmal danke Patrick für deine Hinweise.

Ich hab mir jetzt den PDF 24 rausgepickt. Allerdings weiß ich nicht wie ich das Notesdocument an den Shell - Befehl weitergeben soll.


shellstr ={"C:\Program Files (x86)\PDF24\pdf24-DocTool.exe" -convertToPDF -profile "default/good" } & Pfad & { -outputDir } & Ordner &{ }


Damit kann ich eine Datei, die unter Pfad liegt in ein PDF-Datei umwandeln. Gibt es einen Kniff wie da ein Notesdocument mitgeben kann?


Titel: Re: Dokument als PDF in einen Ordner drucken ohne Abfrage
Beitrag von: jBubbleBoy am 27.01.21 - 16:46:44
Ich hätte es ja eher mit dem kostenlosen PDF-Creator versucht, der hat nämlich eine COM-Schnittstelle und kann so über LotusScript angesprochen werden:
https://docs.pdfforge.org/pdfcreator/en/pdfcreator/com-interface/

Bei dir benötigt man eine Datei im Filesystem, keine Ahnung ob hier ein "RTF-Export" ausreicht - sieht man erst am Ergebnis ;)
Code:
Declare Private Function MailGetMessageBodyComposite Lib "NNOTES" Alias "MailGetMessageBodyComposite" ( ByVal hNT As Long, ByVal N As String, ByVal D As String, nD As Long) As Integer
Declare Private Function ExportRTF Lib "nxrtf" Alias "ExportRTF" (ByVal sTempFile As String, ByVal flags As Long, hmod As Long, ByVal altlibrary As String, ByVal sRTFFile As String) As Integer

Public Sub ConvertDocToRtfFile(doc As NotesDocument, filePath As String)
Dim docT As New NotesDocument(doc.parentDatabase),rt As NotesRichTextItem, fileSize&

Set rt = docT.CreateRichTextItem("Body")  
Call doc.RenderToRTItem(rt)

Call MailGetMessageBodyComposite(rt.Parent.handle , "Body", filePath & ".cd", fileSize)
Call ExportRTF(filePath & ".cd", 0, 0, "", filePath)  
Kill filePath & ".cd"
End Sub