Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

win32::printer help needed

by blenkhn (Acolyte)
on Apr 10, 2008 at 17:56 UTC ( #679541=perlquestion: print w/replies, xml ) Need Help??

blenkhn has asked for the wisdom of the Perl Monks concerning the following question:

I would like to use win32:printer to format a page for output on a dotmatrix printer. How does one set a custom papersize 7 inches tall by 8.5 inches wide.

Replies are listed 'Best First'.
Re: win32::printer help needed
by amarquis (Curate) on Apr 10, 2008 at 18:12 UTC

    Just from checking the docs it looks like:

    $dc->{xsize}; # X size in chosen units $dc->{ysize}; # Y size in chosen units

    Are the parameters you want. (And the default unit is inches).

    Also, I don't know if your size is a standard named size, but it seems like many of those are supported via the papersize attribute.

Re: win32::printer help needed
by BrowserUk (Patriarch) on Apr 10, 2008 at 23:36 UTC

    Maybe this will get you started.

    #! perl -slw use strict; use Win32::Printer; use constant { WIDTH => 7, HEIGHT => 8.5, }; my $prn = new Win32::Printer( ## Page size in inches 7" wide, 8 1/2" high unit => 'in', width => WIDTH, height => HEIGHT, ) or die "$!, $^E"; ## Used to position the text vertically my $hieght = 0; ## For various different font sizes for my $fontsize ( 10 .. 30 ) { ## Select that font my $font = $prn->Font('Arial Bold', $fontsize ); ## CALCRECT return the hieght of the text to be drawn (without dra +wing it). ## CENTER the text horizontally between 0 and WIDTH (in units from + above) $hieght += $prn->Write( 'Hello, world.', 0, $hieght, WIDTH, HEIGHT, CENTER | CALCRECT ); ## So use that to position the bottom left corner ## Then draw the text for real $prn->Write( 'Hello, world. ' . $fontsize, 0, $hieght, WIDTH, HEIGHT, CENTE +R ); } ## Start a second page $prn->Page; ## Draw a few rectangles to fit the paper $prn->Rect( $_, $_, WIDTH - ($_*2), HEIGHT - $_*2 ) for map{ $_ /2 } 0 .. WIDTH / 2; ## Steps of 1/2 inch ## Close and print it. print $prn->Close;

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://679541]
Approved by amarquis
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (1)
As of 2022-10-03 01:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My preferred way to holiday/vacation is:











    Results (13 votes). Check out past polls.

    Notices?