2009-09-16 7 views
2

J'ai besoin d'imprimer des mises en page relativement complexes sur des imprimantes en réseau/partagées avec Perl et je n'ai pas eu de chance de trouver des modules ou des exemples pour m'aider dans cette tâche. Est-ce que quelqu'un a des liens qui pourraient m'aider?Comment envoyer des données à une imprimante réseau avec Perl sur Win32?

Je présume que ce que je veux faire fonctionnera comme Postscript.

mise à jour: Ok, je n'ai pas vraiment besoin d'aide pour générer des fichiers PDF ou Postscript. Je suis sûr que c'est bien documenté. Ce que je veux savoir est, que dois-je utiliser pour envoyer un PDF à une imprimante dans Windows à partir de perl.

+0

Qu'est-ce qu'une «mise en page»? Si c'est (ou peut être converti en) PostScript alors les choses seront plus faciles je suppose. –

Répondre

3

Ok, je dois encore apprendre Postscript ou quelque chose, mais je trouve que les travaux suivants:

use autodie; 
use File::Copy; 
copy 'C:\\frew.ps', '\\\\oxygen\\HPLJ5100 PCL6'; 

Pas trop compliqué. Cela semble fonctionner mieux que open ing et print ing.

2

Si vous avez un fichier PDF, et l'utilisateur Adobe Reader installé (ce qui est assez standard), vous devriez être en mesure d'imprimer le fichier à l'imprimante par défaut en utilisant la fonction ShellExecute dans Win32::FileOp:

use Win32::FileOp 'ShellExecute'; 

ShellExecute(print => 'A:/Path/to/File.pdf'); 
+0

C'est bien, mais je dois pouvoir imprimer sur plus d'une imprimante. Je vais regarder les choses Win32 :: FileOp si. –

3

Win32::Printer expose l'API d'impression Win32, y compris la sélection de l'imprimante et les commandes d'impression de bas niveau. Cependant, le moyen (IMHO) facile d'imprimer un fichier PDF sur une imprimante serait d'utiliser Ghostscript pour produire une sortie PCL ou PS (en fonction de la langue prise en charge par l'imprimante), puis de copy le fichier résultant à l'imprimante (en utilisant son chemin UNC). Vous devrez peut-être spécifier le commutateur /b pour la commande copy.

-1

Wx :: Perl a de très jolies capacités de pinting Win32 sous licence libérale.

Je n'ai pas travaillé avec Postscript ou PDF de WxPerl, donc je ne sais pas ce qui serait impliqué. Googling wxPerl imprimer pdf apparaît this post on the wxperl list.

Sujet: Re: [wxPerl utilisateurs] l'impression d'un PDF à partir Actions wxPerl ... De: Mark Dootson (marque ... @ znix.com) Date: Avr 5, 2007 05:02 : 40 h Liste: org.perl.wxperl utilisateurs

Salut,

Après avoir écrit la dernière réponse, un énorme bidouille me est apparu que, comme il se avère , fonctionne très bien.

utilisez Wx :: ActiveX :: IE passez l'URL de votre pdf, et imprimez gaiement. par exemple.

my $obj = Wx::ActiveX::IE->new($frame, -1, wxDefaultPosition, wxDefaultSize); 
$obj->LoadUrl("file:///C:/mytest.pdf"); 
$obj->Print(0); # for no print dialog 
$obj->Print(1); # for print dialog 

Bien sûr, le chargement IE et le plug-in Acrobat peut sembler un peu trop juste pour imprimer un doc, mais diable, cela est fenêtres et quatre lignes de code est assez impressionnant.

Mark

This command line program pourrait être une autre option. Je ne l'ai pas essayé, et je ne peux pas le garantir, mais il prétend travailler pour imprimer des données postscript à des imprimantes non postscript.

Questions connexes