You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Bartosz Celmer <JO...@idea.net.pl> on 2004/06/14 20:10:07 UTC
PrintTranscoder.KEY_AOI problem posible bug
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;">UR</text>
<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