Aus zwei getrennten Druckjobs ein PDF machen, wie?

Wir haben hier eine alte Lösung, die noch auf einer sehr alten PDFCreator-Lösung beruht. Die würde ich gerne komplett neu erstellen.

Wir müssen hier aus zwei verschiedenen Druckjobs, bei denen die Seiten-Orientierung unterschiedlich ist (eine Seite Quer, eine Seite Hochkant) ein gemeinsames PDF erstellen.

Bislang erstellen wir hier per Automation (aus Navision heraus) die PDF-Dateien mit dem gewünschten Namen und fügen diese dann mit einem externen Shell-Script zu einem PDF zusammen. Dies ist leider nicht so störungsfrei.

Gibt es in aktuelleren Versionen bessere Möglichkeiten? Ich würde hier am Liebsten über User-Tokens arbeiten, da diese bei uns sehr zuverlässig laufen.

Eine Idee wäre es, per User-Tokens beim Speichern einen festen Namen anzugeben, beim jeweils zweiten Dokument könnte ich dann “Deckblatt hinzufügen” oder “Anhang hinzufügen” das erste Dokument hinzufügen.

Könnte dies klappen? Und vor allem, was passiert, wenn die Seitenorientierung unterschiedlich ist?

Hallo,

soll der Prozess automatisiert werden? Ansonsten können die Jobs manuell über die PDFCreator GUI zusammengefügt werden:
http://docs.pdfforge.org/pdfcreator/latest/en/pdfcreator/using-pdfcreator/merge-two-documents/
Was passiert, wenn die Seitenausrichtung unterschiedlich ist, hängt von den gesetzten Einstellungen unter Profileinstellungen->PDF->Allgemein ab, wobei die automatische Erkennung nicht immer korrekte Ergebnisse liefert.

Beste Grüße

Robin

Moin!

Es soll automatisiert werden - noch dazu in einer hohen Frequenz.D.h. es werden so zwischen 100 und 200 Dokumente auf einen Rutsch bearbeitet. Per Navision werden dann die beiden Dokumente gedruckt und anschließend zusammengefürt.

Derzeit geschieht das sehr rudimentär mit einem Shellscript.

Ich habe gestern zunächst versucht, die COM-Schnittstelle mit Navision zum Laufen zu bekommen, hab das dann allerdings zunächst nicht hinbekommen. Dementsprechend wäre die Frage, ob das auch mit User-Tokens zu erreichen wäre.

Michael

Moin Michael,

ich sehe spontan keine Möglichkeit, dies mit den User-Tokens umzusetzen.
Die COM-Schnittstelle ist hier sicherlich die beste Wahl. Allerdings gibt es dort aktuell ein paar Probleme. Leider weiß ich nicht, welche Möglichkeiten in Navison zur Verfügung stehen, um benutzerdefinierte Skripte zu verwenden. Wie hattest Du es bisher versucht?

Beste Grüße

Robin

Mein Code mit der alten Version sah so aus:

Function SetPDFName(FileName : Text[250];ArtNo : Code[20])
IF ISCLEAR(PDFCreator) THEN
  CREATE(PDFCreator);
IF ISCLEAR(PDFCreatorError) THEN
  CREATE(PDFCreatorError);

PDFCreatorError := PDFCreator.cError;

IF PDFCreator.cIsClosed THEN BEGIN
  ERROR('Bitte zunächst den PDFCreator starten.');
END;

Window.OPEN('generiere PDF '+FileName+'\Artikel: '+ArtNo);
WindowisOpen := TRUE;

PDFCreatorOption := PDFCreator.cOptions;

PDFCreatorOption.DisableUpdateCheck := 1;
PDFCreatorOption.UpdateInterval := 0;
PDFCreatorOption.UseAutosave := 1;
PDFCreatorOption.UseAutosaveDirectory := 1;
PDFCreatorOption.AutosaveDirectory := PDFPath;
PDFCreatorOption.AutosaveFormat := 0;   //PDF
PDFCreatorOption.AutosaveFilename := FileName;

PDFCreator.cOptions := PDFCreatorOption;
PDFCreator.cPrinterStop := FALSE;

PrintFaxMailGlobals.SetPrinterID(PDFCreatorPrinter);

Und die Funktion wurde dann hier aufgerufen:

SetPDFName('Schild.pdf', Schild."Item No.");
REPORT.RUNMODAL(REPORT::"Schild",FALSE,FALSE,Schild);
Timeout := 0;
REPEAT
  SLEEP(50); //warten bis PDF erstellt ist, kann ggf. etwas dauern
  Timeout := Timeout + 1;
UNTIL FILE.EXISTS(PDFPath + '\Schild.pdf') OR (Timeout > TimeoutValue);

Das lief prima, aber muss jetzt komplett anders gemacht werden, ich bekomme es im Moment aber nicht hin.

Wird denn COM mit der Server-Variante kommen? Die möchte mein Kunde langfristig einsetzen.