From: <doc...@us...> - 2007-08-29 02:34:02
|
Revision: 164 http://openpcl.svn.sourceforge.net/openpcl/?rev=164&view=rev Author: documentsystems Date: 2007-08-28 19:34:00 -0700 (Tue, 28 Aug 2007) Log Message: ----------- Howard Hoagland. Fixed problem where printers that don't do 300 dpi but do 600 dpi were printing the page image 1/2 the size width and height, making the page image be on the upper left corner of the paper. Now the page image prints at the right size no matter if the printer's max resolution is 300 dpi or is a printer that doesn't have 300 dpi but has 600 or 1200 dpi, buy not setting any particular printer resolution by commenting out the line: mPrintRequestAttributeSet.add(new PrinterResolution(300, 300, ResolutionSyntax.DPI));, and specifying mPrintRequestAttributeSet.add(PrintQuality.HIGH) instead of mPrintRequestAttributeSet.add(PrintQuality.DRAFT). Modified Paths: -------------- openpcl/src/com/openpcl/viewer/OpenPCLViewer.java Modified: openpcl/src/com/openpcl/viewer/OpenPCLViewer.java =================================================================== --- openpcl/src/com/openpcl/viewer/OpenPCLViewer.java 2007-08-29 02:26:53 UTC (rev 163) +++ openpcl/src/com/openpcl/viewer/OpenPCLViewer.java 2007-08-29 02:34:00 UTC (rev 164) @@ -27,7 +27,6 @@ import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; -import javax.print.attribute.ResolutionSyntax; import javax.print.attribute.Size2DSyntax; import javax.print.attribute.standard.Chromaticity; import javax.print.attribute.standard.JobKOctets; @@ -36,7 +35,6 @@ import javax.print.attribute.standard.MediaSize; import javax.print.attribute.standard.OrientationRequested; import javax.print.attribute.standard.PrintQuality; -import javax.print.attribute.standard.PrinterResolution; import javax.print.attribute.standard.Sides; import javax.swing.BorderFactory; import javax.swing.Icon; @@ -673,15 +671,24 @@ // Set the default choices on the print dialog for portrait, Legal, one sided, print job name, 4 margins mPrintRequestAttributeSet = new HashPrintRequestAttributeSet(); mPrintRequestAttributeSet.add(OrientationRequested.PORTRAIT); - mPrintRequestAttributeSet.add(PrintQuality.DRAFT); // (before this was "HIGH") + + // Don't set to "DRAFT" or else the print driver picks the lowest resolution the printer can do. + mPrintRequestAttributeSet.add(PrintQuality.HIGH); + mPrintRequestAttributeSet.add(MediaSize.findMedia(8.5f, 14.0f, Size2DSyntax.INCH)); mPrintRequestAttributeSet.add(Sides.ONE_SIDED); mPrintRequestAttributeSet.add(Chromaticity.MONOCHROME); - mPrintRequestAttributeSet.add(new PrinterResolution(600, 600, ResolutionSyntax.DPI)); - mPrintRequestAttributeSet.add(new JobKOctets((int)(1.3 * 1024))); // each page is 1.3 MB + mPrintRequestAttributeSet.add(new JobKOctets((int)(256))); // each page image bytes max mPrintRequestAttributeSet.add(new JobName(getAppName() + " print", Locale.getDefault())); mPrintRequestAttributeSet.add(new MediaPrintableArea(0.18f, 0.18f, 8.14f, 13.64f, MediaPrintableArea.INCH)); + // 8/22/07 HowardH. Commented out the below line. Don't set the DPI here, let the print driver set the DPI and + // the printing framework will auto scale the image to the print driver's DPI setting. + // If you set the DPI here, you're forcing it to that exact resolution which will result in + // too small an image on paper for for printers that do 600dpi but can't do 300dpi, and if you set this to 600dpi then + // the image on paper is too big for printers that do 300dpi but can't do 600dpi. + // Commented out: mPrintRequestAttributeSet.add(new PrinterResolution(300, 300, ResolutionSyntax.DPI)); + // Print Setup Defaults dialog and Print dialog (same dialog for both defaults and per print) mPosPrintSetupDialogChoices = new PosPrintSetupDialogChoices(); mPosUserOptionsDialog = new PosUserOptionsDialog( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |