[DUG] Print Preview

Neven MacEwan neven at mwk.co.nz
Fri Nov 25 16:01:04 NZDT 2005


John

To save trees you could use FreePDF XP as a preview

John Bird wrote:
> The reason I want to see the printer canvas is the usual reason for wanting
> to see a print preview - what I am sending to the printer is NOT the same as
> the original form, I have added headers, and omitted some items, tweaked
> font sizes etc, so that is what I want to see.  At present I am running to
> the laser printer too much!
> 
>>From the documentation and tests I did the scaling is handled by the
> different sizes of the rects in copyrect, yes of course the printer canvas
> and form canvas are greatly different sizes  (eg 800x600  vs 2400x3171 for
> 300 DPI to A4)
> 
> The code I am using for printing adds items to Printer.Canvas one by one,
> using Printer.canvas.textout, so I was assuming I could copy back from the
> printer canvas similarly, but grab the whole rect.
> 
> A related question is how come Windows never provided a print preview as
> part of printing?
> 
> John 
> 
> 
> -----Original Message-----
> From: Kyley Harris [mailto:kyleyharris at gmail.com] 
> Sent: Friday, 25 November 2005 3:13 p.m.
> To: johnkbird at paradise.net.nz; NZ Borland Developers Group - Delphi List
> Subject: Re: [DUG] Print Preview
> 
> 
> It boggles me why you would do that?
> 
> Surely you have a source that you are sending to the Printer Canvas?  
> simply place that source onto another
> canvas? Why try and read from output when you have the original?
> 
> Also. Don't forget that your printer canvas is going to be 200-300-600dpi  
> or anything. You need to scale
> your information correctly if you want to see anything useful.
> 
> If you have code that prints to a canvas, just make sure the code is using  
> regions defined by the inclusion
> of X and Y DPI modifiers.
> 
> for my report engine I use Points as the unit of measurement, the same as  
> PDF. When I am drawing to a preview I
> just set the DPI to 96 (screen.pixelsperinch) if I want a 50% view i set  
> DPI to 48. 200% is 192dpi etc. Some fonts wont scale well.  All  
> measuremeents will be Size*DPI/72 (72 is points per inch)
> 
> so, even if you could copy off a canvas, you shouldn't. the results would  
> be undesirable.
> 
> On Fri, 25 Nov 2005 14:56:38 +1300, John Bird <johnkbird at paradise.net.nz>  
> wrote:
> 
> 
>>Was experimenting with adding a print preview by copying from the 
>>Printer.canvas to a form.canvas and showing it
>>
>>PrintRect,PreviewRect:TRect;
>> begin
>>        duPageWidth:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALWIDTH);
>>        
>>duPageHeight:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALHEIGHT);
>>
>>      //show this page with copyrect command
>>      PrintRect:=Rect(10,10,duPageWidth-20,duPageHeight-20);
>>
> 
> PreviewRect:=Rect(10,10,frmjkblPrint.Width-20,frmjkblPrint.Height-20);
> 
>>      frmjkblPrint.Canvas.CopyRect(PreviewRect,Printer.Canvas,PrintRect);
>>      frmjkblPrint.show;
>>
>>But it doesn't work...
>>Is it legit to copyrect from Printer.canvas?
>>
>>
>>John
>>
>>
>>_______________________________________________
>>Delphi mailing list
>>Delphi at ns3.123.co.nz http://ns3.123.co.nz/mailman/listinfo/delphi
> 
> 
> 
> 

-- 
Neven MacEwan (B.E. E&E)
Ph. 09 620 1356 Mob. 027 4749 062

New Address Details
===================
MWK Computer Systems
1 Taumata Rd
Sandringham
Auckland

Ph 620 1356
Fx 620 1336
-------------- next part --------------
A non-text attachment was scrubbed...
Name: neven.vcf
Type: text/x-vcard
Size: 164 bytes
Desc: not available
Url : http://ns3.123.co.nz/pipermail/delphi/attachments/20051125/c5035046/neven-0001.vcf


More information about the Delphi mailing list