[futurebasic] Re: [FB] Print scale

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : October 2006 : Group Archive : Group : All Groups

From: Brian Stevens <bstevens33@...>
Date: Tue, 17 Oct 2006 13:31:17 -0700
On Oct 17, 2006, at 12:56 PM, Yoshiyuki Hasegawa wrote:

> n OSX, how about the setting of the percentage of the scale when  
> printing on paper?

The PMSetScale and PMGetScale are your friends here. If you start  
down this road be prepared to use other printer manager calls such as  
PMGet (and Set)Orientation and others. FB verbs make some of these  
calls for you, so it is possible to mix both FB calls and PM calls.   
Details about the PM calls can be found in the Carbon Printing  
Manager documentation in Xcode. The toolbox fns are defined in Tlbx  
Printing.incl and their use is relatively simple.  This is not a  
working example but here is a code snippet. gFBPageFormat is the  
global FB uses when setting up the PM session.

dim as UInt16 @theScale
dim as OSStatus err

err = fn PMGetScale ( gFBPageFormat,@theScale)
theScale = 70            //70% scaling
err = fn PMSetScale ( gFBPageFormat,theScale)

HTH---Brian S.

=========================
PMSetScale
Sets the scaling factor for the page and paper rectangles.



OSStatus PMSetScale (
    PMPageFormat pageFormat,
    double scale
);


Parameters

pageFormat
A page format object. To create a page format object you can call the  
function PMCreatePageFormat and then call the function  
PMSessionDefaultPageFormat to initialize the page format object to  
default values.

scale
The desired scaling factor expressed as a percentage. For example,  
for 50 percent scaling, pass a value of 50; for no scaling, pass 100.

Return Value

A result code. See “Carbon Printing Manager Result Codes”.

Discussion

You can call the function PMSetScale to change the scaling factor  
that appears when your application invokes the Page Setup dialog.

If your application needs to call PMSetScale after it has called  
PMSessionPageSetupDialog, make sure you call  
PMSessionValidatePageFormat before you call PMSessionBeginDocument.

If you call the function PMSetScale after your application calls  
PMSessionBeginDocument for the print job, the changes are ignored for  
the current print job.

Availability

Available in Mac OS X v10.0 and later.