Im printing from a self-created application.
When using ingenious PDFCreator there are always two dialogs: The one with document name, save etc. and the one for choosing a directory.
I can create the right file name with my application, so I want to avoid the first dialog! But how?
And what is the default directory where PDFCreator wants to store the file? How can I avoid the 2nd dialog, too?
Thanks for any suggestion!
--Harry B.
Please use the com interface. There are many samples in the folder "Com". Which language use you?
Frank
[quote=thesmilyface]...Which language use you?Frank[/quote]German language.
So, next I'll look at the COM directory. Perhaps I'll find what I'm searching for.
Hallo Frank!
Da Du schon nach der Sprache gefragt hast, können wir ja auch in Deutsch weitermachen, oder?
Meine Versuche mit dem COM-Interface haben jetzt den folgenden Stand:
Ich kann auf die PDFCreator-Klasse zugreifen. Z. B. kann ich den DefaultPrinter auslesen, ihn auf PDFCreator setzen und wieder den alten Standard herstellen.
Aber der Zugriff auf die Optionen (cOptions) klappt scheinbar nicht:
Mein Entwicklungs-Tool (Visual Objects) hat mir alle Klassen generiert, die zu clsPDFCreator gehören. Für die Optionen gibt es dabei wohl eine eigene Klasse clsPDFCreatorOptions. Wenn ich nun mittels dieser Klasse AutosaveFormat. AutosaveDirectory, AutosaveFilename, UseAutosave und UseAutosaveDirectory ändere, so kann ich diese Änderungen in den Einstellungen des PDFCreatore nicht sehen.
Das anschließende Drucken funktioniert nicht und bleibt irgendwie hängen.
Hast Du eine Idee, was ich falsch mache? Gibt es Beispiele in Delphi? Das könnte mir evtl. weiter helfen, als die übrigen mitgelieferten Beispiele.
Gruß,
Harry B.
Hallo Harry,
als ich nach der Sprache fragte, meinte ich eigentlich die Entwicklungsumgebung. ;-)
Tja, welchen Fehler Du gemacht hast, kann ich natürlich in Ermangelung des Quelltextes nur raten. Also Kristallkugel ausgepackt ... ;-)
Wenn Du ein Objekt der Klasse "clsPDFCreatorOptions" verwendest, musst Du diese natürlich auch zurückschreiben. Also in folgender Form:
Set PDFCreatorOptions = PDFCreator.cOptions ' Aktuelle Einstellungen holen
' Eigene Einstellungen vornehmen
With PDFCreatorOptions
.UseAutosave = 1
.UseAutosaveDirectory = 1
.AutosaveDirectory = fso.GetParentFolderName(Wscript.ScriptFullname)
.AutosaveFilename = "Testpage - PDFCreator"
.AutosaveFormat = 0 ' 0 = PDF
End With
' Diese Einstellungen befinden sich jetzt nur im Objekt
' "PDFCreatorOptions" und sind natürlich noch nicht im
' PDFCreator gesetzt
' Jetzt die Eisntellungen in PDFCreator setzen.
Set PDFCreator.cOptions = PDFCreatorOptions
'Die Einstellungen werden aber nicht gespeichtert.
'Dazu muss die Methode "cSaveOptions" verwendet werden.
Oder aber Du verwendest die Property "cOption" der Klasse PDFCreator. Dann kannst Du sofort eine Eigenschaft setzen.
Siehe die Beipiele im COM Verzeichnis.
Tschüss Frank
Hallo Frank!
Leider klappt es immer noch nicht.
Mit Deinen Erklärungen bin ich schon etwas weiter gekommen , aber es hakt beim Zuweisen der Optionen zum PDFCreator:
Set PDFCreator.cOptions = PDFCreatorOptions
Was ist cOptions denn geanu? Eine Struktur? Ein Pointer?
Und dann nochmal zu cOption: In dem Beispiel modPDFCreatorAccess2000.bas habe ich so etwas gefunden:
.cOption("UseAutosave") = 1 ' (with habe ich weggelassen!)
So einen Kinstrukt gibt es in Visual Objects m.W.n. nicht. Ich würde es als "Zuweisung eines Wertes (1) zu einer Art Funktion (PDFCreator1.cOption())" bezeichnen.
Was ist cOption genau?
Danke für Deine Hilfe!
Gruß,
Harry B.
So, das Problem wäre gelöst:
PDFCreator1:[cOption,"UseAutosave"] := 1
muss es heißen. Noch keine Ahnung, was das genau bedeutet, Hauptsache, es läuft jetzt.
Wäre nett, wenn Du mir nochmal mitteilen könntest, was für ein Typ cOption und was cOptions ist.
Gruß,
Harry B.
Also cOption ist eine Property und cOptions ist ein Objekt der Klasse PDFCreatorOptions.
Erläuterung:
cOption: Damit setzt Du sofort eine(!) aktuelle Eigenschaft\Einstellung.
cOptions: Hiermit holst Du Dir ein Objekt vom Typ "PDFCreatorOptions", das alle Einstellungen enthält. Dann kann man Änderungen am Objekt vornehmen und das komplette Objekt wieder an PDFCreator übergeben, damit dieser diese übernimmt.
Ich habe beide Möglichkeiten gewählt, da manche Programmierumgebungen mal die eine oder die andere Möglichkeit unterstützt.
Da ich "Visual Objects" nicht kenne, kann ich dazu auch kein Beispiel mit dazulegen.
Frank
Ist schon ok, da ich es ja jetzt mit der Verwendung von cOption hinbekommen habe.
--Harry B.