From b710c137606af849d0864dbe5190ed29afdac10f Mon Sep 17 00:00:00 2001 From: scuri Date: Tue, 5 Jan 2010 19:45:28 +0000 Subject: *** empty log message *** --- html/en/drv/printer.html | 22 ++++++++++++++++++++++ src/wd.c | 6 ++++-- src/win32/cdwin.c | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/html/en/drv/printer.html b/html/en/drv/printer.html index 3ef31d4..6b6ca19 100644 --- a/html/en/drv/printer.html +++ b/html/en/drv/printer.html @@ -84,6 +84,28 @@ before creating the canvas.

the name of the selected printer. +

Notes

+ +

Patterns

+

Usually when printing regions filled with patterns you have to compensate for +the printer high resolution or the pattern will come out very small. If you +don't want to create a high resolution version of your pattern, then the +simplest way is to use wdCanvasPattern to resize the pattern to +an expected millimeter size. This will increase the pattern raster size so it +will be more visible in the printer.

+

But on some printers the result were not what we expect:

+ + diff --git a/src/wd.c b/src/wd.c index 0bd4f9a..9332518 100644 --- a/src/wd.c +++ b/src/wd.c @@ -522,7 +522,7 @@ void wdCanvasGetTextBounds(cdCanvas* canvas, double x, double y, const char *s, void wdCanvasPattern(cdCanvas* canvas, int w, int h, const long *color, double w_mm, double h_mm) { - long *pattern = 0; + long *pattern = NULL; int w_pxl, h_pxl, x, y, cx, cy; int wratio, hratio; int *XTab, *YTab; @@ -531,6 +531,7 @@ void wdCanvasPattern(cdCanvas* canvas, int w, int h, const long *color, double w cdCanvasMM2Pixel(canvas, w_mm, h_mm, &w_pxl, &h_pxl); + /* to preserve the pattern characteristics must be an integer number */ wratio = cdRound((double)w_pxl/(double)w); hratio = cdRound((double)h_pxl/(double)h); @@ -564,7 +565,7 @@ void wdCanvasPattern(cdCanvas* canvas, int w, int h, const long *color, double w void wdCanvasStipple(cdCanvas* canvas, int w, int h, const unsigned char *fgbg, double w_mm, double h_mm) { - unsigned char *stipple = 0; + unsigned char *stipple = NULL; int w_pxl, h_pxl, x, y, cx, cy; int wratio, hratio; int *XTab, *YTab; @@ -573,6 +574,7 @@ void wdCanvasStipple(cdCanvas* canvas, int w, int h, const unsigned char *fgbg, cdCanvasMM2Pixel(canvas, w_mm, h_mm, &w_pxl, &h_pxl); + /* to preserve the pattern characteristics must be an integer number */ wratio = cdRound((double)w_pxl/(double)w); hratio = cdRound((double)h_pxl/(double)h); diff --git a/src/win32/cdwin.c b/src/win32/cdwin.c index 4b38187..313e833 100644 --- a/src/win32/cdwin.c +++ b/src/win32/cdwin.c @@ -595,7 +595,7 @@ static void cdpattern(cdCtxCanvas* ctxcanvas, int w, int h, const long int *colo if (!cdwCreateDIB(&dib)) return; - /* important to preserve pattern size during printing */ + /* trying to preserve pattern size during printing */ set_dib_res(&dib, ctxcanvas); cdwDIBEncodePattern(&dib, colors); -- cgit v1.2.3