Domino 9 und frühere Versionen > ND8: Entwicklung

PDFCreator 2.3.2 findet keinen PrintJob

(1/2) > >>

Badhei:
Hallo Zusammen,

ich versuche gerade mit dem PDFCreator ein PDF Dokument über eine View zu erstellen. Dazu habe ich vier Agenten geschrieben die ich nacheinander aufrufe.

Agent 1: Startet alle weiteren Agenten nacheinander per Formelsprache.
     @PostedCommand([ToolsRunMacro]; "PDFCreator 2.32");
     @PostedCommand([ToolsRunMacro]; "PDFCreator 2.32 SelectAll");
     @PostedCommand([ToolsRunMacro]; "PDFCreator 2.32 Print")

Agent 2: Sucht die Dokumente die ich in einem PDF Dokument drucken möchte. Dazu kopiere ich die Dokumente aus einer anderen DB in die DB in der ich das PDF erstellen möchte. In der anderen DB kann ich die Agenten nicht erstellen da diese nicht mehr geändert werden darf.

Agent 3: Macht nur: @Command([EditSelectAll])

Agent 4: Anbei der Code zu diesem Agenten. Er springt mir immer ins else.
Der Code ist erstmal noch recht einfach um generell zu testen ob das erstellen funktioniert.
Nachdem das PDF erstellt wurde sollen die Dokumente wieder gelöscht werden und die nächsten Dokumente sollen in die DB kopiert werden und das nächste PDF erstellt werden.


Sub Initialize
   Dim ws As New NotesUIWorkspace
   Dim uiview As NotesUIView
   Dim oPDFQueue As Variant
   Dim oPDFJob

   On Error GoTo Fehler   
   Set oPDFQueue = CreateObject("PDFCreator.JobQueue")
   Call oPDFQueue.Initialize()
      
   Set UIView = ws.currentview
   Sleep 1
   
   Call Uiview.Print(0, , , , 2, , , , , )
   if  oPDFQueue.WaitForJob(2) then
      
      MsgBox CStr(oPDFQueue.count)
         
      Set oPDFJob = oPDFQueue.NextJob
   
      
      oPDFJob.ConvertTo("c:\temp\test.pdf")
      If oPDFJob.IsFinished = True Then
         oPDFQueue.ReleaseCom 'PDFCreator-Instanz beenden 
      End If
      
   Else
      MsgBox "Keine PrintJobs gefunden"
      oPDFQueue.ReleaseCom 'PDFCreator-Instanz beenden
   End If   
   
   
   Exit Sub
Fehler:   
   MsgBox "Fehlerzeile ->" + CStr(Erl) + "  Fehler ->" + CStr(Error)  + "  Fehlernr ->" + CStr(Err)
   Call oPDFQueue.ReleaseCom()
End Sub


Habt Ihr vielleicht eine Idee warum das PDF nicht erstellt wird?

jBubbleBoy:
Gib mal den Drucker beim drucken an:

--- Code: ---Call Uiview.Print(0, , , , 2, , , , ,"PDFCreator" )
--- Ende Code ---

Badhei:
... Code hat doch funktioniert.

Ich habe den PDFCreator noch einmal neu installiert, danach hat er dann das PDF erzeugt.

Obrac:
Mal eine weiterführende Frage zu diesem Themenkomplex: Es ist nicht möglich, per LS ein doc zu drucken, oder? Immer nur ein uidoc oder Dokumente aus einer uiView?

CarstenH:

--- Zitat von: Obrac am 04.12.22 - 09:59:28 ---Mal eine weiterführende Frage zu diesem Themenkomplex: Es ist nicht möglich, per LS ein doc zu drucken, oder? Immer nur ein uidoc oder Dokumente aus einer uiView?

--- Ende Zitat ---

Ein "doc" ist lediglich eine Sammlung von Daten, Nullen und Einsen, Buchstaben, Zahlen ohne jegliche Logik und Ordnung.
Erst durch die Anwendungslogik und das Benutzerinterface wird daraus etwas Sinnvolles.

Technisch gesehen kannst du diese Daten auch ohne Masken oder UIViews zu einem Drucker schicken (Stichwort: Line Printer). Dann ersetzt aber deine Druckroutine bereits die Funktion der UIView indem sie entscheidet, was und in welcher Reihenfolge zum Drucker geschickt wird.

Wenn die Daten dann noch in irgendeiner Art formatiert und angeordnet werden sollen brauchst du irgendeine Präsentationslogik, du könntest per LS auch Word, Excel, Notepad oder einen Kommandozeilendrucker ansprechen aber dann ersetzen diese ebenfalls nur die Funktion die sonst das UIx hätte.

Ein übergeordneter Begriff zum Verständnis dafür wäre z.B. die Zwei- oder Drei-Schichten-Architektur. Welches Werkzeug man letztendlich für welche Schicht nimmt ist egal - sie sind austauschbar.

https://de.wikipedia.org/wiki/Schichtenarchitektur#Drei-Schichten-Architektur

HTH
Carsten

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln