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: 12:03:39 08/21/00 Mon
Author: Larry Griffiths
Subject: Re: Printing at 600 dpi produces small images
In reply to: Michel 's message, "Re: Printing at 600 dpi produces small images" on 07:49:52 08/15/00 Tue

The very first lines in SetPrintMode that set the printer orientation are...

if(PrintMode = pmSpecificWidthAndHeight)then
begin
{
Printer.Orientation is being set here...
}
end;

This code does not check for the FUsePrintJob int the source code that we have, so we make the code check for FUsePrintJob and do not set Printer Orientation when we are controlling the Printjob.

Larry.

>
> 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.