AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Druckdateien (*.prn) drucken

Ein Thema von quasinix · begonnen am 1. Jun 2004 · letzter Beitrag vom 2. Jun 2004
Antwort Antwort
quasinix

Registriert seit: 12. Mai 2004
13 Beiträge
 
#1

Druckdateien (*.prn) drucken

  Alt 1. Jun 2004, 17:33
Hallo,
Ich bin ein Delphi-Neuling und schreibe gerade an einem Progrämmchen mit dem ich in eine Datei umgeleitete Druckaufträge drucken kann. Soll sozusagen eine Vereinfachung des Komandos

Code:
"lpr -P <Druckername> -S <Servername>"
sein.

Na, einen Drucker auswählen kann ich schon. Die Druckdatei auch. Wie kann ich jetzt die Datei zu dem Ausgewählten Drucker schicken? Der Druckauftrag sollte in der Windows Druckerwarteschlange erscheinen und nicht einfach mit dem Befehl oben realisiert werden.

Über eine Idee würde ich mich sehr freuen ....

Gruß,

Quasinix
Angehängte Dateien
Dateityp: zip druckdateiblitz.zip (205,9 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Druckdateien (*.prn) drucken

  Alt 1. Jun 2004, 19:46
Hi,

mit dem Befehl
Code:
print datei.prn
sollte das eigentlich klappen.

Gruß,
Tom
  Mit Zitat antworten Zitat
Benutzerbild von NikoMitDaMacht
NikoMitDaMacht

Registriert seit: 27. Apr 2004
Ort: Freiburg
298 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Druckdateien (*.prn) drucken

  Alt 1. Jun 2004, 21:45
Oder versuchs mal mit shellexecute
Niko
Alles was ein Ende hat, hat auch ein Anfang
  Mit Zitat antworten Zitat
quasinix

Registriert seit: 12. Mai 2004
13 Beiträge
 
#4

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 11:56
Hallo Niko und Jelly,
danke für eure Antwort, aber gibt es nicht irgend ein Komando oder Unit in Delphi mit dem man die Datei zum Drucker schicken kann ohne ein Shellkomando zu benutzen?

Ich bin ja darauf gekommen ein Delphi-Programm zu schreiben weil ich mit dem lpr-Befehl Probleme bekommen habe. Ich wollt nämlich eine ganze Liste von Druckdateien mittels eines kleinen *.bat an den Drucker schicken. Dabei ist dann die Hälfte mit Ausgabe der Fehlermeldung "Drucker ist nicht verfügbar" nicht gedruckt worden. Daraufhin habe ich gedacht ich brauche eine Druckerwarteschlange an die ich die Druckbefehle schicke.

@ Jelly: der Print-Befehl funktioniert bei mir nicht im Shell mit den *.prn-Dateien.

Viele Grüße,

Jan
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 12:38
Zitat von quasinix:
@ Jelly: der Print-Befehl funktioniert bei mir nicht im Shell mit den *.prn-Dateien.
Bei mir hats funktioniert... Bedingung ist natürlich daß du die .prn Datei mit dem passendem Druckertreiber erzeugst.

Gruß,
Tom
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 12:43
Zitat von quasinix:
..., aber gibt es nicht irgend ein Komando oder Unit in Delphi mit dem man die Datei zum Drucker schicken kann ohne ein Shellkomando zu benutzen?
Siehe Daten über Spooler zum Drucker senden
Andreas
  Mit Zitat antworten Zitat
quasinix

Registriert seit: 12. Mai 2004
13 Beiträge
 
#7

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 17:29
@shmia,
das RAWwrite funktioniert ja soweit ganz gut, nur bin ich grad am Verzweifeln wie ich die *.prn-Datei als String SCHNELL eingelesen bekomme. Dabei können die prn's über 5 MB groß sein. Um den Arbeitsspeicher will ich mich dabei nicht kümmern.

Meine - mir zu langsame - Methode ist:

Code:
  strom := tfilestream.Create('d:\druck.prn',fmopenread);
  strom.Read(wert,sizeof(char)); // wert ist ein char
  for i := 1  to strom.size do
      s := s + wert; // s ist ein String
  begin
Wie kann ich den String aus der Datei mit einem Rutsch füllen? Ich hab es auch schon mit GetMem und Pointern versucht, mir ist dabei aber schleierhaft wie den Inhalt des Pointers in den String werfen soll.

Gruß,

Quasinix
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 18:06
Zitat:
Wie kann ich den String aus der Datei mit einem Rutsch füllen?
Ganz einfach:
Delphi-Quellcode:
  strom := tfilestream.Create('d:\druck.prn',fmopenread);
  try
     SetLength(s, strom.Size); // Speicher beschaffen
     strom.ReadBuffer(s[1], strom.Size); //en-Block lesen
   finally
      strom.Free;
   end;
Andreas
  Mit Zitat antworten Zitat
quasinix

Registriert seit: 12. Mai 2004
13 Beiträge
 
#9

Re: Druckdateien (*.prn) drucken

  Alt 2. Jun 2004, 18:26
Hallo shmia,
das geht ja richtig flott! Super, dank Dir! Ich verstehe nur nicht, daß man einem String eine Länge zuweisen kann UND was das s[1] bei dem Einlesen bedeutet.

Beim setlength wird doch der "Array" auf eine die gewünschte Länge gebracht, d.h. er hat strom.size Felder. Beim Einlesen weist man doch mit s[1] auf das erste der Felder zu und nicht auf alles. Kannste das noch erklären, wenn Du Lust und Zeit hast ????

Mein Code sieht jetzt so aus:

Delphi-Quellcode:
procedure TDruckdateiblitz_Form.Button1Click(Sender: TObject);
var s : string;
var wert : char;
var i,laenge : longint;
var strom : tfilestream;
begin
  strom := tfilestream.Create('d:\druck.prn',fmopenread);
  try
     SetLength(s, strom.Size); // Speicher beschaffen
     strom.Readbuffer(s[1], strom.Size); //en-Block lesen
   finally
      strom.Free;
  end;

  rawprint(druckername.caption,'Hallo',s);
  showmessage('Fertig!');

end;
Gruß,

quasinix
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz