Beliebig viele Dateien konvertieren

Viele Dateien zu konvertieren ist genau so leicht wie das Konvertieren einer Datei. Es wird dringend empfohlen das Konvertieren einer Datei anzugucken Konvertierung einer einzelnen Datei bevor man hier anfängt.

Für dieses Beispiel werden 4 Druckaufträge erzeugt, sodass anschließend der zweite und der dritte Auftrage zusammengefügt werden.

Bemerkung

Das Beispiel kann im PDFCreator Verzeichnis unter COMScripts/JS Scripts gefunden werden. Die unten stehenden Programmzeilen wurden der TestPageMergeTarget.js Datei entnommen und kann deshalb direkt dort ausgeführt werden.

Los geht’s

  1. 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 mit der Initialize() Methode.

var PDFCreatorQueue = new ActiveXObject"PDFCreator.JobQueue");
PDFCreatorQueue.Initialize();

//Sets up the path where the converted files should be saved in
var fullPath = objFSO.GetParentFolderName(WScript.ScriptFullname) + "\\TestPage.pdf";
  1. Da man auf die Ankunft von 4 Aufträgen in die Warteschlange wartet, ruft man die Methode WaitForJobs(4, int timeOut). Der Parameter timeOut spezifiziert wie lange auf die 4 Aufträge gewartet werden soll. Im Kapitel Konvertierung einer einzelnen Datei wird näher darauf eingegangen, weshalb es wichtig ist diese Methode aufzurufen.

if(!WaitForJobs(4, 10))
{
   WScript.Echo("4 print jobs did not reach the queue within 10 seconds.");
}
  1. Rufen Sie MergeJobs(PDFCreatorQueue.GetJobByIndex(1), PDFCreatorQueue.GetJobByIndex(2)) auf, um den zweiten und den dritten Druckauftrag zusammenzufügen.

PDFCreatorQueue.MergeJobs(PDFCreatorQueue.GetJobByIndex(1), PDFCreatorQueue.GetJobByIndex(2));
  1. Das Beginnen einer Konvertierung eines Auftrages erfolgt über die Methode ConvertTo(string path). Mit Hilfe einer Schleife können alle Aufträge in der Warteschlange konvertiert werden, die Schleife läuft einfach solange wie die Eigenschaft Count des Queue Objektes nicht null ist. Der Rest innerhalb der Schleife läuft wie bei der Konvertierung einer einzelnen Datei.

while(PDFCreatorQueue.Count > 0)
{
    var job = PDFCreatorQueue.NextJob;
    job.SetProfileByGuid("DefaultGuid");
    job.ConvertTo(fullPath);
    if(!job.IsFinished || !job.IsSuccessful)
    {
         WScript.Echo("Could not convert the file: " + fullPath);
    }
}
  1. Nach der Nutzung des COM-Objektes darf man nicht vergessen, es wieder freizugeben, indem man die Methode ReleaseCom() aufruft.

PDFCreatorQueue.ReleaseCom();

Bemerkung

Für weitere verschiedene Beispiele empfiehlt sich ein Blick in den Ordner „COM Scripts“, der mit dem PDFCreator mitgeliefert wurde. Alternativ finden Sie weitere Informationen hier Wie kann ich .