In diesem Abschnitt werden die Unterschiede zwischen der COM Schnittstelle des alten PDFCreators (v.1.7.3 und drunter) und des neuen PDFCreators(v.2.0 und drüber) dargestellt. Die zwei verschiedenen Abläufe werden kurz dargestellt und gegenübergestellt, wobei jedoch nicht in die Details der einzelnen Objekte eingegangen wird. Sollte Interesse bezüglich der Details vorhanden sein, dann lesen Sie diese bitte im entsprechenden Benutzerhandbuch nach. Stattdessen wird der Schwerpunkt auf den prinzipiellen Programmablauf liegen, d.h. Konvertierung einer Datei mit gewünschten Einstellungen.
Die alte COM Schnittstelle (v1.7.*) bestand aus drei verschiedenen Objekten: das clsPDFCreator Objekt, das clsPDFCreatorOptions Objekt und dem clsPDFCreatorError Objekt. Das erst genannte Objekt startet den gesamten Konvertierungsprozess, d.h. es startet die eigentliche PDFCreator Konvertierung auf einer Datei, setzt dafür den Standarddrucker entsprechend, setzt weitere Einstellungen und so weiter. Im Gegensatz dazu setzt man mit dem zweit genannten Objekt nur weitere Einstellungen, die der PDFCreator seinen Nutzern anbietet. Das dritte Objekt dient nur der Erfolgs- bzw. Misserfolgsmeldung.
Im Vergleich dazu hat die COM Schnittstelle des neuen PDFCreators (v2.*) fünf verschiedene Objekte: das Queue Objekt, das PrintJob Objekt, das PDFCreatorObj Objekt, das Printers Objekt, das OutputFiles Objekt. Der Fokus liegt hierbei auf den drei ersten Objekten, da diese ausreichen, um den prinzipiellen Ablauf zu beschreiben. Das Queue Objekt fungiert als Behälter für alle Druckaufträge, die konvertiert werden sollen. Durch das Queue Objekt hat man die volle Kontrolle über diesen Behälter. Jeder einkommende Druckauftrag wird gewrappt und repräsentiert durch ein PrintJob Objekt, das es ermöglicht, spezielle Einstellungen für einen Druckauftrag zu setzen, wie z.B. unter welchem Profil dieser Druckauftrag konvertiert werden soll. Das PDFCreatorObj Objekt ermöglicht das Erfragen von Informationen zur PDFCreator Instanz, ob beispielsweise die PDFCreator Anwendung gerade läuft oder nicht.
Wie oben beschrieben wurde der gesamte Konvertierungsprozess auf drei Objekte verteilt anstatt nur eines - so wie es in der alten Version war. Das ermöglicht zum Teil mehr Flexibilität, da man z.B. eine Datei drucken kann, diese in die Warteschlange packen kann und das eigentliche Konvertieren auf einen späteren Moment verschieben kann. Demgegenüber steht das alte clsPDFCreator Objekt (v1.7.*), das alle drei oben genannten Schritte ausgeführt hat. Diese Funktionalitäten sind jetzt grob skizziert aufgeteilt in PDFCreatorObj Objekt, welches das Drucken übernimmt, das Queue Objekt, welches das Lagern der Druckaufträge übernimmt, und das PrintJob Objekt, welches sich um die eigentliche Konvertierung kümmert.
Wenn man in der alten Version die Einstellungen ändern wollte, so musste man das clsPDFCreatorOptions Objekt oder nochmal das clsPDFCreator Objekt nutzen. Wenn man ein clsPDFCreatorOptions Objekt erstellt hatte, so musste dies der entsprechenden clsPDFCreator Objekt Eigenschaft zugewiesen werden. Diese Vorgehensweise erforderte schließlich auch, dass man die autosave Eigenschaft des PDFCreator Objektes auf den Pfad setzen musste, wohin man die Datei konvertieren wollte. In der neuen Version hingegen bietet das PrintJob Objekt eine Methode nämlich SetProfileSetting(string name, string wert), die es ermöglicht verschiedene Einstellungen auf einem Druckauftrag zu setzen. Der Hauptunterschied besteht darin, dass das PrintJob Objekt eine Methode namens ConvertTo(string pfad) anbietet, die einen eigenen Konvertierungsablauf für die COM Schnittstelle besitzt, wohingegen die alte Version einfach den eingebauten autosave Konvertierungsablauf genutzt hat. Dieser Unterschied ist der Hauptgrund dafür, weshalb es nicht sinnvoll ist beispielsweise die autosave Einstellung in der neuen Version ändern zu können sowie ein paar andere Einstellungen.
Da die COM Schnittstelle mit C# und dem .Net Framework erstellt wurde, gibt es keine Notwendigkeit für ein Objekt, dass sich um Erfolgs- bzw. Misserfolgsstatus kümmert. Wenn etwas im Konvertierungsprozess falsch läuft, dann wird direkt eine Ausnahme geworfen, wie es in normalen C#/Java/C++ Programmen der Fall ist.
Wie weiter oben erwähnt, sorgt die höhere Modularisierung für eine flexiblere Nutzung der COM Schnittstelle. Zum Beispiel kann man auf 4 Druckaufträge warten, nach deren Eintritt in die Queue lässt man diese einfach dort und erledigt andere Aufgaben und anschließend setzt man die gewünschten Einstellungen auf den PrintJob Objekten und erledigt dann noch weitere Aufgaben und konvertiert die Dateien zum Schluss.
Die neuste Version des PDFCreators wird immer abwärtskompatibel mit älteren Versionen sein (größer oder gleich v2.2).
Des Weiteren werden wir den Support für PDFCreator v1.7.3 demnächst einstellen.
Der unten aufgeführte Programmablaufplan beschreibt die COM Abläufe der Versionen 1.7.x und PDFCreator 2.x. Wie man erkennen kann, ist der neue Ablauf deutlich einfacher bei gleichbleibender Flexibilität.