VoyForums
[ Show ]
Support VoyForums
[ Shrink ]
VoyForums Announcement: Programming and providing support for this service has been a labor of love since 1997. We are one of the few services online who values our users' privacy, and have never sold your information. We have even fought hard to defend your privacy in legal cases; however, we've done it with almost no financial support -- paying out of pocket to continue providing the service. Due to the issues imposed on us by advertisers, we also stopped hosting most ads on the forums many years ago. We hope you appreciate our efforts.

Show your support by donating any amount. (Note: We are still technically a for-profit company, so your contribution is not tax-deductible.) PayPal Acct: Feedback:

Donate to VoyForums (PayPal):

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time | Archives: 12345678[9]10 ]


[ Next Thread | Previous Thread | Next Message | Previous Message ]

Date Posted: 07:49:52 08/15/00 Tue
Author: Michel
Subject: Re: Printing at 600 dpi produces small images
In reply to: Larry Griffiths 's message, "Re: Printing at 600 dpi produces small images" on 09:53:23 08/14/00 Mon


Dear Larry,

If UsePrintJob is False, the printer orientation may not be changed. I cannot see where the

orientation may be set to the wrong setting by mistake. When UsePrintJob is True, the

orientation is set the landscape with if the width is longer than the height. This indeed may

not be the desired result if using pmSpecificWidthAndHeight. I will change the code to:

if UsePrintJob then
begin
{ MB Aug 15, 2000. If the print mode specifies a width and height,
use the specified dimensions, not the dimensions of the Graphic. }

if PrintMode = pmSpecificWidthAndHeight then
begin
if Self.Width > Self.Height then
Printer.Orientation := poLandscape
else
Printer.Orientation := poPortrait;
end
else
begin
if Graphic.Width > Graphic.Height then
Printer.Orientation := poLandscape
else
Printer.Orientation := poPortrait;
end;
end;

If you don't want the orientation to be set from the dimensions, then as you are doing,
setting UsePrintJob to False, is the proper approach. Let me know if you have any other

problems with this.

Best regards,

Michel

> >
> > Hi Larry,
> >
> > I have done a change recently that solves this
> problem
> > without having to change the PrintMode. This is
> > because the printer metrics were only read when the
> > PrintMode property is assigned. So if the resolution
> > is changed on the printer, but the PrintMOde is not
> > changed, the graphics are not scaled properly. Here
> is
> > the change.
> >
> > In EnPrint.Pas, TDibGraphicPrinter.Print,
> >
> > just before the case PrintMode of statement, add:
> >
> > { MB Jul 27, 2000 Re-read the printer metrics as
> > changing the orientation
> > on some printers may change the parameters }
> > GetPrinterMetrics(FPrinterMetrics);
> >
> > case PrintMode of
> > pmOriginalSize :
> >
> > I think this will solve the problem.
> >
> > Best regards,
> >
> > Michel
> >
> We are NOT using pmOriginalSize. We are using
> pmSpecificWidthAndHeight. We call PrintMode after we
> have set the orientation on the printer, but it seems
> Printmode is randomly setting the orientation to
> Portrait or Landscape. We are adding a statement to
> SetPrintMode that says:
>
> if(PrintMode = pmSpecificWidthAndHeight) AND
> (UsePrintJob)
>
> so that SetPrintMode will not set the orientation on
> the printer. We have UsePrintJob set to false. We
> hope this fixes our current problem.

[ Next Thread | Previous Thread | Next Message | Previous Message ]


Replies:


[ Contact Forum Admin ]


Forum timezone: GMT-5
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.