Was drucken

Hallo Leute

Kann ich mit Perl auch was drucken (auf Papier), vielleicht mit „STDPRN“ oder so? Libs habe ich alle, aber nichts gefunden, auch in der Hilfe nicht, habe Win2000.

lG
Martin B

Hallo

Kann ich mit Perl auch was drucken (auf Papier), vielleicht
mit „STDPRN“ oder so? Libs habe ich alle, aber nichts
gefunden, auch in der Hilfe nicht, habe Win2000.

Unter Activeperl kannst Du (über ppm) das Modul
Win32::stuck_out_tongue:rinter installieren, und damit (gerade
probiert) geht:

use strict;
use warnings;
use Win32::stuck\_out\_tongue:rinter;

 my $text = 'Kann ich mit Perl auch was drucken?';

 my $dc = new Win32::stuck\_out\_tongue:rinter(
 papersize =\> A4,
 dialog =\> NOSELECTION,
 description =\> 'myjob',
 unit =\> 'mm'
 );

 $dc-\>Font(my $font = $dc-\>Font('Arial', 12));
 $dc-\>Color(0, 0, 255);
 $dc-\>Write($text, 10, 10);

 $dc-\>Brush(128, 0, 0);
 $dc-&gt:stuck\_out\_tongue\_winking\_eye:en(4, 0, 0, 128);
 $dc-\>Ellipse(10, 25, 50, 50);
 
 $dc-\>Close();

Ansonsten wird STDPRN nicht funktionieren,
das geht *vielleicht* unter MinGW oder
Cygwin (nicht getestet).

Ansonsten kannst Du aus Perl auch
Word oder Excel fernsteuern und
Drucken lassen (Win32::open_mouth:LE).

Grüße

CMБ

Hallo Semjon

Ich habe nicht gleich auf cpan.org geguckt, da ich dachte, das macht ja der PPM sowieso. Das erwähnte „Printer.pm“ zeigt er mir nicht an (nur die „offiziellen“ Libs?), man findet auf cpan aber das hier:
http://search.cpan.org/~wasx/Win32-Printer-0.9.1/Pri…
Das gebe ich in den Ordner „C:/perl/lib/Win32/Printer.pm“, kriege aber diesen Fehler:

Can't locate loadable object for module Win32::stuck\_out\_tongue:rinter in @INC...

Danke für Deine Mühe.
lG
Martin B

Hallo,

http://search.cpan.org/~wasx/Win32-Printer-0.9.1/Pri…
Das gebe ich in den Ordner „C:/perl/lib/Win32/Printer.pm“,

Musst du nicht.

kriege aber diesen Fehler:

Can’t locate loadable object for module Win32::stuck_out_tongue:rinter in
@INC

Das ist üblicherweise ein Zeichen dafür, dass das Modul nicht ordentlich installiert wurde - wie hast du das denn gemacht?

Grüße,
Moritz

Hallo

Ich habe nicht gleich auf cpan.org geguckt, da ich dachte, das
macht ja der PPM sowieso. Das erwähnte „Printer.pm“ zeigt er
mir nicht an (nur die „offiziellen“ Libs?), man findet auf
cpan aber das hier:
http://search.cpan.org/~wasx/Win32-Printer-0.9.1/Pri…
Das gebe ich in den Ordner „C:/perl/lib/Win32/Printer.pm“,
kriege aber diesen Fehler:

Du benutzt CPAN unter Activeperl
überhaupt nicht!. Und
Du kopierst um Gottesswillen
auch nichts irgendwo hin.

Du startest ein Dos-Fenster , in dieses
gibst Du ein: ppm

Dann kommt irgendwann ein Programmfenster,
mit dessen Bedienung Du Dich dann
auseinandersetzen mußt.

Grüße

CMБ

Hallo Moritz,

http://search.cpan.org/~wasx/Win32-Printer-0.9.1/Pri…
Das gebe ich in den Ordner „C:/perl/lib/Win32/Printer.pm“,

Musst du nicht.

Aha.

Can’t locate loadable object for module Win32::stuck_out_tongue:rinter in
@INC

Das ist üblicherweise ein Zeichen dafür, dass das Modul nicht
ordentlich installiert wurde - wie hast du das denn gemacht?

Den Quelltext von cpan kopiert und die Datei „Printer.pm“ in den Ordner
„C:/perl/lib/Win32“
rein gelegt in der Meinung, dass diese dann „automatisch registriert“ würde.

lG
Martin B

Hallo

Du benutzt CPAN unter Activeperl
überhaupt nicht!. Und
Du kopierst um Gottesswillen
auch nichts irgendwo hin.

Ok ok. Der PPM registriert wohl die Dateien, die er runterlädt?

Du startest ein Dos-Fenster , in dieses
gibst Du ein: ppm

Ich kenne das, aber habe den Button links oben übersehen („View all packages“). Mit diesem zeigt er auch den Printer an, Rechtsklick auf den, ist vorgemerkt, dann mit der F5 aktualisieren. Das ist es dann wohl, was ich zu tun habe.

Dein Sample macht jedoch immer noch den gleichen Fehler:

Can't locate loadable object for module Win32::stuck\_out\_tongue:rinter in @INC...

Die Suche auf „Printer“ in „C:/perl/lib“ bleibt auch ohne Erfolg.
Damit er ein Objekt „Win32::stuck_out_tongue:rinter“ erzeugen kann, muss wohl eine Datei „Printer.pm“ im Ordner „lib/Win32“ drin sein, nehme ich an.

lG
Martin B

Hallo

Ich kenne das, aber habe den Button links oben übersehen
(„View all packages“). Mit diesem zeigt er auch den Printer
an, Rechtsklick auf den, ist vorgemerkt,

OK

dann mit der F5
aktualisieren. Das ist es dann wohl, was ich zu tun habe.

Nein.

Du mußt auf den kleinen grünen Pfeil (rechts)
klicken (Run marked Actions, Ctrl-Enter).

Grüße

CMБ

Hallo,

Can’t locate loadable object for module Win32::stuck_out_tongue:rinter in
@INC

Das ist üblicherweise ein Zeichen dafür, dass das Modul nicht
ordentlich installiert wurde - wie hast du das denn gemacht?

Den Quelltext von cpan kopiert und die Datei „Printer.pm“ in
den Ordner
„C:/perl/lib/Win32“
rein gelegt in der Meinung, dass diese dann „automatisch
registriert“ würde.

Das funktioniert für Module, die nur aus Perl-Dateien bestehen, nicht aber für welche, die zum Teil in C geschrieben sind und entweder kompiliert werden müssen oder Objektdateien enthalten. In diesem Fall musst du es „ordentlich“ installieren, also über ppm oder die CPAN-Shell.

Grüße,
Moritz

Hallo Leute

Du mußt auf den kleinen grünen Pfeil (rechts)
klicken (Run marked Actions, Ctrl-Enter).

Danke, „Printer“ wird jetzt als installiert angezeigt (zweiter Button von links). Der Fehler ist aber immer noch derselbe, auch ist der „Printer“ nicht im lib-Ordner zu finden.
Ich gebe es auf, :frowning:

lG
Martin B

Hallo

Du mußt auf den kleinen grünen Pfeil (rechts)
klicken (Run marked Actions, Ctrl-Enter).

Danke, „Printer“ wird jetzt als installiert angezeigt
(zweiter Button von links).

OK

Der Fehler ist aber immer noch derselbe,
auch ist der „Printer“ nicht im lib-Ordner
zu finden. Ich gebe es auf, :frowning:

Was meinst Du denn mit ‚lib‘-Ordner? Und was
für ein Fehler wird angezeigt?

Mit der Verzeichnisstruktur hast Du unter
Activeperl nichts zu tun, dafür gibt es
ja gerade dieses ppm-Dingens.

BTW, nach erfolgreicher Installation befindet
sich ‚printer.pm‘ z.B: in C:\Perl\site\lib\Win32

Der restliche Win32-spezifische Kram von
Win32::stuck_out_tongue:rinter liegt dann z.B. in
C:\Perl\site\lib\auto\Win32\Printer

Grüße

CMБ

Hallo

Was meinst Du denn mit ‚lib‘-Ordner?

C:\Perl\lib

Und was für ein Fehler wird angezeigt?

Bisher immer dieser:

Can't locate loadable object for module Win32::stuck\_out\_tongue:rinter in @INC...

BTW, nach erfolgreicher Installation befindet
sich ‚printer.pm‘ z.B: in C:\Perl\site\lib\Win32

Ich habe da kein Win32, aber immerhin die ‚Printer.pm‘, sieht so aus:
http://members.aon.at/amando1957/perl/sitelib.jpg

Jetzt habe ich (laut der HTML-Hilfe) „Win32::“ weggenommen:

use Printer;
open (STDERR, "\>error.log") or die "kein error.log\n";

 my $text = 'Kann ich mit Perl auch was drucken?';

 my $dc = new Printer(
 papersize =\> 'A4', # er will keine "barewords"
 dialog =\> 'NOSELECTION',
 description =\> 'myjob',
 unit =\> 'mm'
 # MSWin32 =\> 'LPT1' # laut Hilfe, aber nuetzt nicht
 );

Jetzt kriege ich nur noch diesen Fehler:

Can't locate Win32/Printer.pm in @INC 
(@INC contains: C:/Perl/site/lib C:/Perl/lib .) at 
C:/Perl/site/lib/Printer.pm line 73.

In Zeile 73 steht:

require Win32::stuck\_out\_tongue:rinter; # load Edgars Binans libs from wasx.net

lG
Martin B

Hallo Martin,

Ich habe da kein Win32, aber immerhin die ‚Printer.pm‘, sieht
so aus:
http://members.aon.at/amando1957/perl/sitelib.jpg
Jetzt habe ich (laut der HTML-Hilfe) „Win32::“ weggenommen:
Jetzt kriege ich nur noch diesen Fehler:

Can’t locate Win32/Printer.pm in @INC
(@INC contains: C:/Perl/site/lib C:/Perl/lib .) at
C:/Perl/site/lib/Printer.pm line 73.

In Zeile 73 steht:

require Win32::stuck_out_tongue:rinter; # load Edgars Binans libs from
wasx.net

Welche Perl-Version ist das?

Grüße

CMБ

Hallo Semjon,

Welche Perl-Version ist das?

Ich habe ActivePerl 1004, vor ein paar Monaten erst runtergeladen. Der höchste Change Log ist 5.10.

lG
Martin

Hallo Martin,

Welche Perl-Version ist das?

Ich habe ActivePerl 1004, vor ein paar Monaten erst
runtergeladen. Der höchste Change Log ist 5.10.

Möglicherweise hast Du Fragmente von Win32::stuck_out_tongue:rinter
in die falschen Verzeichnisse (von Hand) kopiert - und
jetzt findet er (über Suchpfad @INC) diese/u> zuerst -
und kann nichts damit anfangen.

Grüße

CMБ

Hallo Semjon,

Möglicherweise hast Du Fragmente von Win32::stuck_out_tongue:rinter
in die falschen Verzeichnisse (von Hand) kopiert - und
jetzt findet er (über Suchpfad @INC) diese/u> zuerst -
und kann nichts damit anfangen.

Ich hatte eine „Printer.pm“ in „C:/Perl/lib“, ist aber entfernt. Es gibt diese Datei jetzt nur in „C:/Perl/site/lib“.
Ich habe jetzt an den Autor geschrieben, vielleicht weiss ja der weiter.

Spasibo
Martin

Hallo Semjon

Ich habe jetzt an den Autor geschrieben, der hat mir bestätigt, dass die Installation unter „site/lib“ OK sei, jedoch:

\> But got the error:
\>
\> Can't locate Win32/Printer.pm in @INC (@INC contains: 
C:/Perl/site/lib C:/Perl/lib .) at 
C:/Perl/site/lib/Printer.pm line 73.

Looks like your system's missing the Win32::stuck\_out\_tongue:rinter module, used just
for printing on Windows. That should be available on PPM and is
definitely available on CPAN

http://cpan.uwinnipeg.ca/dist/Win32-Printer

Installing Win32::stuck\_out\_tongue:rinter should sort it out.

Nun zeigt der PPM das aber nicht an (Button links oben).
Jetzt weiss ich wieder nicht weiter, denn runterladen und in „lib/Win32“ reinlegen ist ja nicht angebracht.

lG
Martin B

Hallo Martin

Nun zeigt der PPM das aber nicht an (Button links oben).
Jetzt weiss ich wieder nicht weiter, denn runterladen und in
„lib/Win32“ reinlegen ist ja nicht angebracht.

Es sieht so aus, als ob Dein Perl kaputt wäre.

Folgendes Vorgehen sei empfohlen:

  • Perl explizit deinstallieren (Systemsteuerung/Programme)
  • Von Hand die Reste des C:\Perl unbedingt löschen
  • Rechner Rebooten
  • runterladen, installieren => http://downloads.activestate.com/ActivePerl/Windows/…
  • Rechner rebooten (C:\Perl\site\bin,C:\Perl\bin im Pfad!)
  • ppm in der DOS-Box starten
  • Win32-Module neu installieren
  • Alles gut.

Grüße

CMБ

ppm-Repositories aktivieren
Hallo nochmal

ich sehe gerade, Win32-Printer ist bei mir
nur im Bribes-Repository. Du kannst die
zusätzlichen Repositories direkt im ppm
aktivieren:

  • ppm
  • [Edit] - [Preferences] -Repositories
  • „Add Repository“(unten) - „suggested“ - „bribes::Bribes Du Perl“
  • [Add] drücken
  • wenn fertig (kann dauern), das mit „trouchelle“ und „uwinnipeg“
      wiederholen
  • [OK] - warten

Jetzt hast Du nahezu die gesamte Welt der Perl-Module
zur Verfügung.

Grüße

CMБ