From: Peter E. <Pet...@at...> - 2002-10-23 18:13:39
|
I've only seen it done with a system() call to rundll32.exe. Something = like this: =20 # untested $dll =3D "/Winnt/System32/mshtml.dll"; =20 system("rundll32.exe $dll,PrintHTML $file"); =20 -----Original Message----- From: Magnone, Angelo [mailto:ang...@rb...] Sent: Wednesday, October 23, 2002 13:57 To: Perl-Win32-Gui-Users@Lists. Sourceforge. Net (E-mail) Subject: [perl-win32-gui-users] printer support Does win32 have any printer-type functions like "Select printer", = "Printer Properties", "Page Size", etc...=20 Thanks :)=20 ------------------------------------------------------------ This e-mail may be privileged and/or confidential, and the sender does = not waive any related rights and obligations. Any distribution, use or = copying of this e-mail or the information it contains by other than an intended recipient is unauthorized. If you received this e-mail in error, please advise me (by return e-mail or otherwise) immediately.=20 Ce courriel est confidentiel et prot=E9g=E9. L'exp=E9diteur ne renonce = pas aux droits et obligations qui s'y rapportent. Toute diffusion, utilisation = ou copie de ce message ou des renseignements qu'il contient par une = personne autre que le (les) destinataire(s) d=E9sign=E9(s) est interdite. Si = vous recevez ce courriel par erreur, veuillez m'en aviser imm=E9diatement, par = retour de courriel ou par un autre moyen.=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 |
From: Darek A. <dar...@eu...> - 2002-10-25 02:56:49
|
<BR><BR>----- Original Message -----<BR>From: Peter Eisengrein <PETER.EISENGREIN@ATX.COM><BR>Date: Wed, 23 Oct 2002 14:13:59 -0400 <BR>To: "''Magnone, Angelo''" <ANGELO.MAGNONE@RBC.COM>, "Perl-Win32-Gui-Users@Lists. Sourceforge. Net (E-mail)" <PERL-WIN32-GUI-USERS@LISTS.SOURCEFORGE.NET><BR>Subject: RE: [perl-win32-gui-users] printer support<BR><BR> <DIV><SPAN class=231450718-23102002><FONT color=#0000ff face="Courier New" size=2>The following code is a part of source code I found some times ago on the newsgroups </FONT></SPAN></DIV> <DIV><FONT color=#0000ff face="Courier New" size=2><SPAN class=231450718-23102002>(it works for me)</SPAN></FONT></DIV> <DIV><FONT color=#0000ff face="Courier New" size=2><SPAN class=231450718-23102002></SPAN></FONT> </DIV> <DIV><FONT color=#0000ff face="Courier New" size=2><SPAN class=231450718-23102002>Regards</SPAN></FONT></DIV> <DIV><FONT color=#0000ff face="Courier New" size=2><SPAN class=231450718-23102002>Darek</SPAN></FONT></DIV> <DIV><FONT color=#0000ff face="Courier New" size=2><SPAN class=231450718-23102002>=====================================</SPAN></FONT></DIV> <DIV><SPAN class=231450718-23102002><FONT color=#0000ff face="Courier New" size=2>#!perl -w<BR>use strict;<BR># Win32::API GDI printer test code<BR><BR>use Win32::API;<BR><BR>my $PrintDialog = new Win32::API('comdlg32', 'PrintDlg', ['P'], 'N');<BR>my $GlobalLock = new Win32::API('kernel32', 'GlobalLock', ['N'], 'N');<BR>my $GlobalFree = new Win32::API('kernel32', 'GlobalFree', ['N'], <BR>'N');<BR>my $GetDeviceCaps = new Win32::API('gdi32', 'GetDeviceCaps', <BR>['N','N'], 'N');<BR>my $GetTextMetrics = new Win32::API('gdi32', 'GetTextMetrics',<BR>['N','P'], 'N');<BR>my $StartDoc = new Win32::API('gdi32', 'StartDoc', ['N', 'P'] , 'N');<BR>my $StartPage = new Win32::API('gdi32', 'StartPage', ['N'], 'N');<BR>my $TextOut = new Win32::API('gdi32', 'TextOut',<BR>['N','I','I','P','I'], 'N');<BR>my $EndPage = new Win32::API('gdi32', 'EndPage', ['N'], 'N');<BR>my $EndDoc = new Win32::API('gdi32', 'EndDoc', ['N'], 'N');<BR>my $GetLastError = new Win32::API('kernel32', 'GetLastError', [],<BR>'N');<BR>my $FormatMessage = new Win32::API('kernel32', 'FormatMessage',<BR>['N','P','N','N','P','N','P'],'N');<BR><BR>sub ShowError {<BR> my $function = shift;<BR> my $message = " " x 1024;<BR> $FormatMessage->Call(0x1000, 0, $GetLastError->Call(), 0,<BR>$message, 1024, 0);<BR> $message =~ s/\s+$//;<BR> print "$function: $message\n";<BR> exit;<BR>}<BR><BR># user dialog to select printer<BR># page setup dialog selected since pages, selection and copies are<BR>not used here<BR># paper size and orientation shown instead<BR>my $pd = pack("Lx16Lx42", 66, 0x140); # pd_size, flags =<BR>RETURNDC | PRINTSETUP<BR>$PrintDialog->Call($pd) or die "Cancelled\n";<BR># get device mode and device context<BR>my ($devmode, $dc) = unpack("x8Lx4L", $pd);<BR><BR># this part is just to print a notice line<BR># and to practice mucking with pointers in structures<BR># otherwise, examining devmode is not needed for GDI<BR># devmode is a handle to movable global memory<BR>my $handle = $devmode;<BR># get actual memory pointer<BR>unless ($devmode = $GlobalLock->Call($handle))<BR>{ShowError('GlobalLock')};<BR># get perl to use long integer as a pointer<BR># and retrieve the printer relevant part of the devmode structure<BR>$devmode = unpack('P104', pack('L', $devmode));<BR># release the global memory<BR>unless ($GlobalFree->Call($handle) == 0) {ShowError('GlobalFree')};<BR># these strings are blank padded<BR>my ($devicename, $orient, $duplex, $formname) =<BR>unpack('A32x12Sx16Sx6A32', $devmode);<BR>$orient = ('Portrait', 'Landscape')[--$orient];<BR>$duplex = ('', 'Duplex')[$duplex > 1];<BR>print "Printing to $devicename on $formname paper, $orient<BR>$duplex\n";<BR></DIV></FONT></SPAN> -- <p>_______________________________________________<br> Sign-up for your own FREE Personalized E-mail at <font color="#0000FF"><a href="http://www.mail.com/?sr=signup" target="_new">Mail.com</a></font></p> |
From: Darek A. <dar...@eu...> - 2002-10-26 14:22:24
|
----- Original Message ----- From: Aldo Calpini <da...@pe...> Date: Fri, 25 Oct 2002 11:21:42 +0200 To: per...@li..., "Borus, Gabor" <gab...@fr...> Subject: Re: [perl-win32-gui-users] printer support > Borus, Gabor wrote: > > Here you are: > > The first section is an API call to show the standard printer dialog, > > the second section is an example from the Win32::NPRG module. > > It detects your installed printers, you can select a printer, and it > > prints a little example to the selected printer. > > looks fine, but what are Win32::NPRG and Win32::Wingraph? they can't > be found on CPAN. http://cpan.org/modules/by-category/22_Microsoft_Windows_Modules/Win32/IFROL/ > > the last one, in particular, seems to me like a lot of duplication of > efforts. most of the DC functions are already implemented in > Win32::GUI, and those which aren't could be implemented there. > another "Typical Open Source nonsense", as someone said ;-) Yes and no. This is quite old module - files on CPAN indicate Oct 2000 as last modification date - and almost completly unknown in perl society. I use it a while and it fits some purposes (some doesn't;) Regards Darek BTW. You do very good work. -- __________________________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup |
From: <pko...@me...> - 2002-10-26 15:39:55
|
Hello! >http://cpan.org/modules/by-category/22_Microsoft_Windows_Modules/Win32/IFROL/ Great! Is there a ppm-distribution available, too? Regards, Peter -----Original Message----- From: per...@li... [mailto:per...@li...]On Behalf Of Darek Adamkiewicz Sent: Saturday, October 26, 2002 4:14 PM To: da...@pe...; per...@li... Cc: Perl-Win32-Gui-Users@Lists. Sourceforge. Net (E-mail) Subject: Re: [perl-win32-gui-users] printer support ----- Original Message ----- From: Aldo Calpini <da...@pe...> Date: Fri, 25 Oct 2002 11:21:42 +0200 To: per...@li..., "Borus, Gabor" <gab...@fr...> Subject: Re: [perl-win32-gui-users] printer support > Borus, Gabor wrote: > > Here you are: > > The first section is an API call to show the standard printer dialog, > > the second section is an example from the Win32::NPRG module. > > It detects your installed printers, you can select a printer, and it > > prints a little example to the selected printer. > > looks fine, but what are Win32::NPRG and Win32::Wingraph? they can't > be found on CPAN. http://cpan.org/modules/by-category/22_Microsoft_Windows_Modules/Win32/IFROL/ > > the last one, in particular, seems to me like a lot of duplication of > efforts. most of the DC functions are already implemented in > Win32::GUI, and those which aren't could be implemented there. > another "Typical Open Source nonsense", as someone said ;-) Yes and no. This is quite old module - files on CPAN indicate Oct 2000 as last modification date - and almost completly unknown in perl society. I use it a while and it fits some purposes (some doesn't;) Regards Darek BTW. You do very good work. -- __________________________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup ------------------------------------------------------- This SF.net email is sponsored by: ApacheCon, November 18-21 in Las Vegas (supported by COMDEX), the only Apache event to be fully supported by the ASF. http://www.apachecon.com _______________________________________________ Perl-Win32-GUI-Users mailing list Per...@li... https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users |
From: Borus, G. <gab...@fr...> - 2002-10-25 05:22:27
|
printer supportHi Here you are: The first section is an API call to show the standard printer dialog, = the second section is an example from the Win32::NPRG module. It detects your installed printers, you can select a printer, and it = prints a little example to the selected printer. Regards Gabor #!perl -w use strict; # Win32::API GDI printer test code use ExtUtils::testlib; use Win32::Wingraph; use Win32::NPRG qw(drawmatrix); use Win32::API; my $PrintDialog =3D new Win32::API('comdlg32', 'PrintDlg', ['P'], 'N'); my $GlobalLock =3D new Win32::API('kernel32', 'GlobalLock', ['N'], 'N'); my $GlobalFree =3D new Win32::API('kernel32', 'GlobalFree', ['N'], 'N'); my $GetDeviceCaps =3D new Win32::API('gdi32', 'GetDeviceCaps', = ['N','N'], 'N'); my $GetTextMetrics =3D new Win32::API('gdi32', = 'GetTextMetrics',['N','P'], 'N'); my $StartDoc =3D new Win32::API('gdi32', 'StartDoc', ['N', 'P'] , 'N'); my $StartPage =3D new Win32::API('gdi32', 'StartPage', ['N'], 'N'); my $TextOut =3D new Win32::API('gdi32', 'TextOut',['N','I','I','P','I'], = 'N'); my $EndPage =3D new Win32::API('gdi32', 'EndPage', ['N'], 'N'); my $EndDoc =3D new Win32::API('gdi32', 'EndDoc', ['N'], 'N'); my $GetLastError =3D new Win32::API('kernel32', 'GetLastError', = [],'N'); my $FormatMessage =3D new Win32::API('kernel32', = 'FormatMessage',['N','P','N','N','P','N','P'],'N'); sub ShowError { my $function =3D shift; my $message =3D " " x 1024; $FormatMessage->Call(0x1000, 0, $GetLastError->Call(), 0,$message, = 1024, 0); $message =3D~ s/\s+$//; print "$function: $message\n"; exit; } # user dialog to select printer # page setup dialog selected since pages, selection and copies are not = used here # paper size and orientation shown instead my $pd =3D pack("Lx16Lx42", 66, 0x140);=20 # pd_size, flags =3D RETURNDC | PRINTSETUP $PrintDialog->Call($pd) or die "Cancelled\n"; # get device mode and device context my ($devmode, $dc) =3D unpack("x8Lx4L", $pd); # this part is just to print a notice line # and to practice mucking with pointers in structures # otherwise, examining devmode is not needed for GDI # devmode is a handle to movable global memory my $handle =3D $devmode; # get actual memory pointer unless ($devmode =3D $GlobalLock->Call($handle)) = {ShowError('GlobalLock')}; # get perl to use long integer as a pointer # and retrieve the printer relevant part of the devmode structure $devmode =3D unpack('P104', pack('L', $devmode)); # release the global memory unless ($GlobalFree->Call($handle) =3D=3D 0) {ShowError('GlobalFree')}; # these strings are blank padded my ($devicename, $orient, $duplex, $formname) =3D = unpack('A32x12Sx16Sx6A32', $devmode); $orient =3D ('Portrait', 'Landscape')[--$orient]; $duplex =3D ('', 'Duplex')[$duplex > 1]; print "Printing to $devicename on $formname paper, $orient $duplex\n"; my $dc =3D new Win32::Wingraph(device=3D>"$devicename", desc=3D>'test', = orientation=3D>'$orient') or die; #orientation=3D>'Landscape', $dc->SetPen(3); # "font, size, codepage" - the third argument is Windows font codepage # if you don't supply this it'll be set to russian !!!,=20 # 0-westerneuropean, 238-polish, I don't know the hungarian ;( $dc->SetFont("Times New Roman Bold, 12, 0");=20 $dc->TextOut(70, 180, "Blah blah blah"); $dc->MoveTo(70, 200); $dc->LineTo(270, 200); print "Start\n"; my $rp=3Dnew NPRG(dc=3D>$dc); $rp->{'atbreak'} =3D sub { $rp->pushq({font=3D>'Times, 6, 0', opt=3D>'R', = border=3D>'B',value=3D>'Very wisdom report about something = '.$rp->pagenum(), width=3D>980}); $rp->pushq({height=3D>20, value=3D>' ', width=3D>100}); $rp->pushq({font=3D>'Arial italic, 16, 0', = opt=3D>'-L',border=3D>'TBLR', value=3D>"Some header", width=3D>300, = brush=3D>220}, {font=3D>'Courier Bold, 12, 0', = opt=3D>'-C',border=3D>'TBLR', value=3D>"Another header", width=3D>250, = brush=3D>220}, {value=3D>\&NPRG::drawmatrix, width=3D>400,=20 matrix=3D>[ [ {font=3D>'Arial Bold Italic, = 12',value=3D>'Month', border=3D>'TBLR', opt=3D>'C'}], [ {font=3D>'Times New = Roman,8',value=3D>'I', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,8',value=3D>'II', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,8',value=3D>'III', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,8',value=3D>'IV', border=3D>'TBLR', opt=3D>'-C'}, ], [ {font=3D>'Times New = Roman,7',value=3D>'I', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'II', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'III', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'IV', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'V', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'VI', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'VII', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'VIII', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'IX', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'X', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'XI', border=3D>'TBLR', opt=3D>'-C'}, {font=3D>'Times New = Roman,7',value=3D>'XII', border=3D>'TBLR', opt=3D>'-C'}, ] ], } ); $rp->pushq({width=3D>950, height=3D>3, brush=3D>0}); $rp->flushq(); print "Here\n"; }; $rp->flushq(); print "End\n"; ----- Original Message -----=20 From: Peter Eisengrein=20 To: 'Magnone, Angelo' ; Perl-Win32-Gui-Users@Lists. Sourceforge. Net = (E-mail)=20 Sent: Wednesday, October 23, 2002 8:13 PM Subject: RE: [perl-win32-gui-users] printer support I've only seen it done with a system() call to rundll32.exe. Something = like this: # untested $dll =3D "/Winnt/System32/mshtml.dll"; =20 system("rundll32.exe $dll,PrintHTML $file"); -----Original Message----- From: Magnone, Angelo [mailto:ang...@rb...] Sent: Wednesday, October 23, 2002 13:57 To: Perl-Win32-Gui-Users@Lists. Sourceforge. Net (E-mail) Subject: [perl-win32-gui-users] printer support Does win32 have any printer-type functions like "Select printer", = "Printer Properties", "Page Size", etc...=20 Thanks :)=20 ------------------------------------------------------------ This e-mail may be privileged and/or confidential, and the sender = does not waive any related rights and obligations. Any distribution, use = or copying of this e-mail or the information it contains by other than = an intended recipient is unauthorized. If you received this e-mail in = error, please advise me (by return e-mail or otherwise) immediately.=20 Ce courriel est confidentiel et prot=E9g=E9. L'exp=E9diteur ne = renonce pas aux droits et obligations qui s'y rapportent. Toute = diffusion, utilisation ou copie de ce message ou des renseignements = qu'il contient par une personne autre que le (les) destinataire(s) = d=E9sign=E9(s) est interdite. Si vous recevez ce courriel par erreur, = veuillez m'en aviser imm=E9diatement, par retour de courriel ou par un = autre moyen.=20 = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 |
From: Aldo C. <da...@pe...> - 2002-10-25 09:20:37
|
Borus, Gabor wrote: > Here you are: > The first section is an API call to show the standard printer dialog, > the second section is an example from the Win32::NPRG module. > It detects your installed printers, you can select a printer, and it > prints a little example to the selected printer. looks fine, but what are Win32::NPRG and Win32::Wingraph? they can't be found on CPAN. the last one, in particular, seems to me like a lot of duplication of efforts. most of the DC functions are already implemented in Win32::GUI, and those which aren't could be implemented there. another "Typical Open Source nonsense", as someone said ;-) cheers, Aldo __END__ $_=q,just perl,,s, , another ,,s,$, hacker,,print; |