Drucken unter Windows (Komandozeile, Perl/TK, Win32::GUI)
Steffen
- perl
0 Paintballxpress0 Steffen0 Owen
Hallo liebe Forumsgemeinde,
ich will mit Perl in Windows (XP) drucken und habe ewig gesucht wie ich des mache.
Jetzt bin ich auf "Printer" gestoßen
Ich hab das Modul installiert und dann hat ermir gesagt er könne den Befehl "gswin32c" nicht ausführen...
Nach langen suchen bin ich drauf gestoßen das das das Ghostscript sein könnte... habs installiert und dennoch funktioniert es nicht...
kann mir wer helfen?
Gruß und DANKE
Steffen
Oder gibt es noch anderer einfacherer Möglichkeiten?
Der einfache Druck auf LPT1 reicht halt nicht, und irgendwann will ich auch nur mehr als nur TXT drucken.
Hallo liebe Forumsgemeinde,
ich will mit Perl in Windows (XP) drucken und habe ewig gesucht wie ich des mache.
Jetzt bin ich auf "Printer" gestoßen
Ich hab das Modul installiert und dann hat ermir gesagt er könne den Befehl "gswin32c" nicht ausführen...
Nach langen suchen bin ich drauf gestoßen das das das Ghostscript sein könnte... habs installiert und dennoch funktioniert es nicht...kann mir wer helfen?
Gruß und DANKE
SteffenOder gibt es noch anderer einfacherer Möglichkeiten?
Der einfache Druck auf LPT1 reicht halt nicht, und irgendwann will ich auch nur mehr als nur TXT drucken.
Hallo,
hmmm also ich bin jetzt schon soweit (was ja eigentlich auch FAST *g* logisch war) das ich einfach noch zusätzlich den Pfad zu Gohstscript angegeben habe...
Und jetzt kommt auch der Windows Druckbildschirm und GS wird gestartet jedoch schmeisst mir das einen Error raus
"Error: /undefinedfilename in ($spoolfile)"
kamm mir hier evtl. noch wer helfen?
DANKE ;-)
use strict;
use Printer;
my @data = ('hello world', "\n", 'vasa', "\n", 'Yessssssssss');
my $prn = new Printer();
my %available_printers = $prn->list_printers;
print $available_printers{name}->[0],"\n";
print $available_printers{name}->[1],"\n";
print $available_printers{name}->[2],"\n";
print $available_printers{name}->[3],"\n";
print $available_printers{name}->[4],"\n";
$prn->print_command('linux' => {'type' => 'pipe',
'command' => 'lpr -P lp'},
'MSWin32' => {'type' => 'command',
'command' => 'c:\Programme\Ghostscript\gs8.14\bin\gswin32c.exe -sDEVICE=mswinpr2 -dNOPAUSE -dBATCH $spoolfile'}
);
$prn->use_default;
$prn->print(@data);
Und jetzt kommt auch der Windows Druckbildschirm und GS wird gestartet jedoch schmeisst mir das einen Error raus
"Error: /undefinedfilename in ($spoolfile)"
So wie's da steht, kriege ich es auch nicht gebacken. Ich habe probehalber den Pfad mit Solidus / benamst, und auch $spoolfile auf einen definierten Wert gesetzt, aber es hilft nicht, in beiden Fällen:
| Spool: C:\windows\temp\printer-2315390.ps
| No such file or directory at C:/Perl/site/lib/Printer/Win32.pm line 114.
Eine Alternative wäre Win32::Printer http://search.cpan.org/~wasx/Win32-Printer-0.8.1/Printer.pm. Obacht: ppm lädt ein kaputtes Paket http://ppm.activestate.com/PPMPackages/5.8-windows/MSWin32-x86-multi-thread-5.8/Win32-Printer-0.7.0.tar.gz, da nur 45 Bytes groß. Manuelle Installation http://www.wasx.net/soft/perl/printer/ schafft Abhilfe. Das Programmbeispiel liefert dann:
| ERROR: Cannot transform space! Die Funktion ist nur im Win32-Modus g³ltig.
| at printertest2.pl line 3
Mit use diagnostics; kriegst du noch einen schönen nichtssagenden Stacktrace. Woraus man aus alledem schließen kann: Kamelpisse, samt und sonders. >:( Ich empfehle, den Inhalt in eine Datei zu schreiben, und den Nutzer aufzufordern, diese selber auszudrucken.