Entwickler-Ecke

WinForms - Automatisch auf festgesetzten Drucker drucken möglich?


J.D. - Di 27.01.09 11:42
Titel: Automatisch auf festgesetzten Drucker drucken möglich?
Hallo Leute,

erst einmal zur kurzen Vorstellung: Heiße im RL Tim und bin 23 Jahre alt, und neu hier :D

Ich hätte da mal eine Frage. Ich habe ein Quittungs-Programm was Quittungen automatisch auf den Standard-Drucker kommen lässt. Soweit so gut. Nun möchte ich das jede Quittung als PDF auf einen bestimmten Pfad gesichert wird. Ist das möglich das ganze auf einen PDF-Drucker (Nicht Standarddrucker) in ein bestimmten Pfad zu speichern? Wohlgemerkt automatsich, also ohne PrintDialog?

Das hab ich bis jetzt nicht rausgefunden :D

MFG

J.D.


AXMD - Di 27.01.09 12:13

Hallo!

Sofern die API des PDF-Druckers das unterstützt ja. Welchen PDF-Drucker verwendest du denn?

AXMD


J.D. - Di 27.01.09 12:24

Danke für deine schnelle antwort.
PDF-Creator oder halt FreePDF nutze ich :D
Soll halt zur kleinen Archivierungen der Quittungen dienen, allerdings weiß ich nicht wie ich das verwirklichen soll.

MFG


AXMD - Di 27.01.09 12:29

Basieren die nicht beide auf Ghostscript? Dann könntest du dessen API nutzen.
Einfacher wäre es wahrscheinlich, FreePDF mit entsprechenden Parametern aufzurufen (siehe Seite 12 des Handbuchs: http://freepdfxp.de/FreePDFXPAdminDe.pdf)

AXMD


J.D. - Di 27.01.09 12:47

Danke für deine Antwort. Jo FreePDF is da glaub ich einfacher. Allerdings weiß ich noch nicht ganz genau wie ich das in meine Anwenung implementieren soll. :-(


AXMD - Di 27.01.09 17:45

Am einfachsten ist es, wenn du die freepdf.exe einfach mit den Parametern startest auf die ich vorhin hingeweisen habe. Bezüglich des Startens such im Forum nach Suche in: Delphi-Forum, Delphi-Library SHELLEXECUTE oder Suche in: Delphi-Forum, Delphi-Library CREATEPROCESS hier im Forum :)

AXMD


J.D. - Mi 28.01.09 10:02

Danke dir, das werde ich mir mal zu gemüte tun und ein wenig mit
System.Diagnostics.Process
rumprobieren. :D
Ich sage bescheid wenns funktioniert :D

MFG


AXMD - Mi 28.01.09 10:36

Sorry, hatte ganz vergessen, dass dein Beitrag ja im C#- und nicht im Delphiforum war :oops: Natürlich ist System.Diagnostics.Process hier das richtige Stichwort.

Sorry nochmal
AXMD


J.D. - Mi 28.01.09 14:34

:D Kein Problem hatte ich mir schon gedacht :D

Habe es jetzt mal so gemacht:


C#-Quelltext
1:
System.Diagnostics.Process.Start(@"C:/Programme/FreePDF_XP/freepdf.exe""C:/"+date+".pdf /x /a");                    


Somit startet er und erstellt eine leere PDF, is ja klar weil ich ihm nichts zuweise was er reinschreiben soll, allerdings weiß ich nicht wie ich im jetzt quasi diesen Befehl zuweißen soll:


C#-Quelltext
1:
drucker.KassenbonDrucken(SeriennummernListe, (Convert.ToDouble(textBox1.Text) - Convert.ToDouble(textBox2.Text)).ToString("#.##"), textBox2.Text, textBox1.Text, textBox4.Text, textBox3.Text, MitarbeiterID);                    


Der reine Befehl sendet das ganze an den standard-drucker der in Windows eingestellt ist, nur wie weise ich dem FreePDF-Prozess diesen Befehl zu?

MFG

J.D.

Moderiert von user profile iconAXMD: C#-Tags hinzugefügt


danielf - Mi 28.01.09 16:17

Hallo,

das Erstellen von einfachen PDF-Datei geht sehr komfortabel mit iTEXT .NET (http://www.ujihara.jp/iTextdotNET/en/).

Viel Spaß
Daniel

Das Beispiel zeigt eigentlich alles : http://www.ujihara.jp/iTextdotNET/examples/Chap0101.cs


J.D. - Mi 28.01.09 17:03

hmm das klingt auch recht gut. Ich werde es mir mal anschauen :D Danke

MFG


Kha - Mi 28.01.09 18:49

user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
das Erstellen von einfachen PDF-Datei geht sehr komfortabel mit iTEXT .NET (http://www.ujihara.jp/iTextdotNET/en/).
Zitat:
I recommend you to use iTextSharp for a new .NET project.
:zwinker:
http://itextsharp.sourceforge.net/, die wohl berühmteste .Net-PDF-Lib


J.D. - Do 29.01.09 16:50

Also iText gefällt mir recht gut allerdings bekomm ich schon nach Anwenden des PdfWriters einen Fehler:

Fehler 1 Der Typ "java.io.OutputStream" ist in einer nicht referenzierten Assembly definiert. Fügen Sie einen Verweis auf die Assembly "vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" hinzu.[


Im Kontext isser vorhanden, nur schmeißt er diesen Fehler :D

MFG


Kha - Do 29.01.09 20:22

Was genau an der Fehlermeldung ist nun unklar ;) ? Falls es um das "wo" geht: Referenzen -> Referenz hinzufügen

PS: Warum benutzt man eine Library, wenn selbst ihr Entwickler von ihr abrät :gruebel: ?


danielf - Fr 30.01.09 09:48

Das ist die .NET Library - mit der gehts.

http://sourceforge.net/project/platformdownload.php?group_id=72954&sel_platform=8612


J.D. - Fr 30.01.09 11:46

@Kha: Das is mir schon klar :D
@danielf: Super Danke mit der hats geklappt, jetzt mal weiter basteln :D

MFG


J.D. - Fr 30.01.09 13:26

Sooo sorry für doppelpost aber ich habs fertig. Mittels ITextSharp hat alles wunderbar funktioniert. :D
Kann geclosed werden :D

MFG