Hello I’m trying to use Batik project to print SVG
documents, but I need to print only part of them. I tried to use PrintTranscoder.KEY_AOI,
but I doesn’t work. When I set a rectangle which I want to print either
nothing is being printed, or the printed area is different from the one I choose.
Here is the code I use to print: private void print() { new Thread() { public void run(){ Rectangle aoi = new
Rectangle(0,0,200,200); PrintTranscoder pt=
new PrintTranscoder();
pt.addTranscodingHint(PrintTranscoder.KEY_WIDTH,
new Float(aoi.width));
pt.addTranscodingHint(PrintTranscoder.KEY_HEIGHT,
new Float(aoi.height));
pt.addTranscodingHint(PrintTranscoder.KEY_AOI, aoi);
TranscoderInput input = new TranscoderInput(document);
pt.addTranscodingHint(pt.KEY_SHOW_PAGE_DIALOG,Boolean.TRUE);
pt.addTranscodingHint(pt.KEY_SHOW_PRINTER_DIALOG,Boolean.TRUE);
pt.transcode(input, null); try
{pt.print(); } catch
(Exception ex) { } } }.start(); } My SVG example looks like this: <?xml version="1.0"
encoding="iso-8859-1" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG
20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> <svg viewBox="0 0 400 400" > <g
id="relief" visibility="visible"> <rect
x="10" y="10" width="390" height="390"
fill="none" stroke="black" stroke-width="2"/> <circle
style="fill:none;stroke:black;" cx="200" cy="200"
r="100"/> </g> <g
id="c" visibility="hidden"> <text
x="200" y="200" style="font-family: sans-serif;
font-size: 14pt; stroke: none; fill:
black;">Center</text> </g> <text
x="50" y="50" style="font-family: sans-serif;
font-size: 14pt; stroke: none; fill: black;">UL</text> <text
x="50" y="350" style="font-family: sans-serif;
font-size: 14pt; stroke: none; fill: black;">BL</text> <text
x="350" y="50" style="font-family: sans-serif;
font-size: 14pt; stroke: none; fill: black;"> <text
x="350" y="350" style="font-family: sans-serif;
font-size: 14pt; stroke: none; fill: black;">BR</text> <line
x1="190" y1="10" x2="190" y2="190"
stroke="black" stroke-width="2"/> <line
x1="10" y1="190" x2="190" y2="190"
stroke="black" stroke-width="2"/> </svg> When I set: Rectangle aoi = new
Rectangle(0,0,200,200); the area is smaller then one I choose. When I set: Rectangle aoi = new Rectangle(200,200,200,200);
nothing is being printed. Please give me any suggestion what I’m doing
wrong. Thanks Bartek |
- PrintTranscoder.KEY_AOI problem posible bug Bartosz Celmer
- PrintTranscoder.KEY_AOI problem posible bug Bartosz Celmer
- Re: PrintTranscoder.KEY_AOI problem posible bug Andres Toussaint