Dieses Kapitel beschreibt die Konvertierung einer einzelnen Datei in eine PDF Datei mit Hilfe der COM-Schnittstelle.
Bemerkung
Die Programmausschnitte wurden in JavaScript geschrieben und können im PDFCreator Verzeichnis unter COMScripts/JS Scripts/Basics gefunden werden. Die folgenden Programmzeilen wurden dem TestPage2PDF Skript entnommen und können deshalb dort ausgeführt werden.
Bei der Erzeugung des COM-Objektes bekommt man im Grunde eine Referenz auf die Warteschlange, die alle eintreffenden Druckaufträge sammelt. Um mit dem COM-Objekt zu arbeiten, geht man daher wie folgt vor:
Zunächst holt man sich eine Referenz auf die PDFCreator Auftragswarteschlange, indem man die ActiveXObject(„ProgID“) Methode aufruft. Anschließend initialisiert man das COM-Objekt(welches im Grunde die Auftragswarteschlange ist) mit der Initialize() Methode .
var PDFCreatorQueue = new ActiveXObject("PDFCreator.JobQueue");
PDFCreatorQueue.Initialize();
//Sets up the path where the converted pdf file should be saved in
var fullPath = objFSO.GetParentFolderName(WScript.ScriptFullname) + "\\TestPage.pdf";
Falls man auf das Eintreffen nur eines Druckauftrages wartet, so sollte die Methode WaitForJob(int timeOut) aufgerufen werden. Der Parameter timeOut spezifiziert wie Lange auf das Eintreffen des Druckauftrages gewartet werden soll. Diese Methode ist deshalb von höchster Wichtigkeit, weil jeder neu ausgelöste Druckjob etwas Zeit braucht bis er von der Druckerwarteschlange zur Auftragswarteschlange des PDFCreators ankommt. Sollte die Eigenschaft NextJob aufgerufen werden, ohne dass auf den Druckauftrag gewartet wurde, so kann es passieren, dass NextJob Null zurückgibt, obwohl der Druckauftrag ein paar Zeilen zuvor ausgelöst wurde.
if(!PDFCreatorQueue.WaitForJob(10))
{
WScript.Echo("The print job did not reach the queue within 10 seconds");
}
Nun kann der nächste Druckauftrag aus der Auftragswarteschlange durch die Eigenschaft NextJob entnommen werden. Dadurch hat man eine Referenz auf den vordersten Auftrag in der Auftragswarteschlange.
var job = PDFCreatorQueue.NextJob
Das Profil des Auftrages kann mit SetProfileByGuid(guid) gesetzt werden. Der guid Parameter ist ein String, der das Profil bestimmt, das gesetzt wird(siehe Auflistung unten). Es ist auch möglich ein Profil über dessen Namen zu setzen mit Hilfe der Methode SetProfileByName(„MyNameForACertainProfile“). Bei den Standardprofilen sind Name und guid identisch.
job.SetProfileByGuid("DefaultGuid"); //Alternative: job.SetProfileByName("DefaultGuid");
Siehe Vordefinierte GUIDs für verfügbare GUIDs.
Um die Konvertierung eines Druckauftrages zu beginnen, muss durch das PrintJob Objekt die Methode ConvertTo(path) aufgerufen werden. Der path Parameter beinhaltet den vollständigen Namen der konvertierten Datei.
job.ConvertTo(fullPath); //the variable fullPath was introduced in line 31
Die Eigenschaft IsFinished informiert über den Konvertierungsstatus. Falls der Prozess abgeschlossen wurde, liefert IsFinished den Wert Wahr zurück. Möchte man wissen, ob der Druckauftrag erfolgreich erledigt wurde, so sollte man die Eigenschaft IsSuccessful in Betracht ziehen.
Es liefert Wahr, falls der Druckauftrag erfolgreich konvertiert wurde.
if(!job.IsFinished || !job.IsSuccessful)
{
WScript.Echo("Error in process");
}
Nach der Nutzung des COM Objektes darf man nicht vergessen, es wieder freizugeben, indem man die Methode ReleaseCom() aufruft, ansonsten kann keine andere PDFCreator Instanz arbeiten.
PDFCreatorQueue.ReleaseCom();
Bemerkung
Für weitere Informationen über die Warteschlange siehe JobQueue, für weitere Informationen über den Job und seine Methoden/Eigenschaften siehe PrintJob. Für mehr unterschiedliche und detaillierte Beispiele werfen Sie einen Blick in den Ordner COM Scripts, der mit PDFCreator ausgeliefert wird, oder werfen Sie einen Blick in das Kapitel Wie kann ich dieses Handbuchs.