From: Andreas W. <an...@ao...> - 2004-10-20 15:48:04
|
Hello again. > I have not tried it myself, but I guess there is two possibilities: > > 1) Do you want to print the content of a widget? In this case, would > it be possible to get the printer's Graphics2D and invokes > MapPane.print(...) method on it? If some scale is needed, it should > be applied on the Graphics2D object before to pass it to the > MapPane.print(...) method. > > 2) If there is no widget (for example just printing as a server work), > then we may avoid completly MapPane and work directly with > Renderer. Again, pass the printer's Graphics2D object to the > Renderer.paint(...) method. You can specify explicitly the > AffineTransform as the zoom parameter in this case, which should > give you full control. > > > Martin. First thanks for your fast answer. Both thinks would be nice if they would work. So Printing the Map over the Renderer would be nice for printing the whole map, while printing out of a widget could be used for printing details over a printpreview UI Element (Zoom the part jo would like to see and so on). At the moment im testing both approches, unfortunatly till now both methodes don´t show any output on the paper. Till now i cann´t see why (im still debugging into the Geotools Renderer Code to geht common how the rendering works). I have tried to write a simple class implementing the Printable Interface used by the Java 1.4 Printing API. The Class only implements the print Methode which gets the Graphic object used for printing. When i work direct on the Graphic2D object (for example drawing a Rectangle with graphic.draw(Rectangle) or something similare) it is printed. When i give the graphic Handler to the mapPane.print(graphic) Methode nothing is shown, similar when i build a StyledMapRenderer, give him the context with setMapContext (or insert Layer) and then let him paint on the Graphic Object with renderer.paint(graphics2D, (Rectangle)rect, affineTransform, true); On this approche i´m not sure if its not a problem of the right parametrization of the Methode. Think the affineTransform must be correct to map from the worldcoordinates to the DeciveCorrdinate system (but even with a wrong affineTransform something should be shown). I don´t think that it is a problem of the Context of the Renderer, in my debugger i can see that RenderedLayers where build from the DefaultMapLayer i added to the renderer. Maybe somebody is more common with Rendering and Printing an can give me a hint. greetings Andreas |
From: Martin D. <mar...@te...> - 2004-10-20 21:18:21
|
Andreas Wagner a =E9crit : > On this approche i=B4m not sure if its not a problem of the right=20 > parametrization of the Methode. Think the affineTransform must be=20 > correct to map from the worldcoordinates to the DeciveCorrdinate system= =20 > (but even with a wrong affineTransform something should be shown). The AffineTransform is a very sensitive information. If it is wrong,=20 nothing may appears (or actually, painting mays occurs completly outside=20 the widget area). Maybe a small test case would help, if you can send one= ? |