RFR: 8307246 : Printing: banded raster path doesn't account for device offset values [v7]

vtstydev duke at openjdk.org
Wed Jan 31 06:41:00 UTC 2024


On Tue, 30 Jan 2024 04:44:31 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

> > Only on Windows platform under certain conditions real device prints shifted image on paper.
> 
> Also, if it affects only windows platform, will it not be more advisable to do in WPrinterJob class instead of RasterPrinterJob?

It means that we will need to copy  `protected int printPage(Pageable document, int pageIndex)` into 3 classes derived from RasterPrinterJob; namely WPrinterJob , CPrinterJob, PSPrinterJob. I think the most part of RasterPrinterJob code matches all platforms. Would be better to ask somebody who is well familiar with platform dependent print systems. 

Bug affected windows platform because only WPrinterJob's `getPhysicalPrintableX(Paper p), getPhysicalPrintableY(Paper p)` may return nonzero values. These values may be taken into account separately from this logic

int bandX = deviceLeft - deviceAddressableX;
if (bandX < 0) {
	bandGraphics.translate(bandX/xScale,0);
	bandX = 0;
}
int bandY = deviceTop + bandTop - deviceAddressableY;
if (bandY < 0) {
	bandGraphics.translate(0,bandY/yScale);
	bandY = 0;
}

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17030#issuecomment-1918479199


More information about the client-libs-dev mailing list