I found out that the AOI key is not implemented in the PrintTranscoder properly.
I made a solution, called TiledPrintTranscoder, which is descried in more detail in the thread (Batik users) named: <x-tad-bigger>svg to multipage tiff
Andres.
</x-tad-bigger>
On Jun 16, 2004, at 5:24 AM, Bartosz Celmer wrote:
<x-tad-bigger>Hello</x-tad-bigger>
<x-tad-bigger> 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:</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>private void print()</x-tad-bigger>
<x-tad-bigger> { </x-tad-bigger>
<x-tad-bigger> new Thread() {</x-tad-bigger>
<x-tad-bigger> public void run(){</x-tad-bigger>
<x-tad-bigger> Rectangle aoi = new Rectangle(0,0,200,200);</x-tad-bigger>
<x-tad-bigger> PrintTranscoder pt= new PrintTranscoder();</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger> pt.addTranscodingHint(PrintTranscoder.KEY_WIDTH,</x-tad-bigger>
<x-tad-bigger> new Float(aoi.width));</x-tad-bigger>
<x-tad-bigger> pt.addTranscodingHint(PrintTranscoder.KEY_HEIGHT,</x-tad-bigger>
<x-tad-bigger> new Float(aoi.height)); </x-tad-bigger>
<x-tad-bigger> pt.addTranscodingHint(PrintTranscoder.KEY_AOI, aoi);</x-tad-bigger>
<x-tad-bigger> TranscoderInput input = new TranscoderInput(document);</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger> pt.addTranscodingHint(pt.KEY_SHOW_PAGE_DIALOG,Boolean.TRUE);</x-tad-bigger>
<x-tad-bigger> pt.addTranscodingHint(pt.KEY_SHOW_PRINTER_DIALOG,Boolean.TRUE);</x-tad-bigger>
<x-tad-bigger> pt.transcode(input, null);</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger> try {pt.print();</x-tad-bigger>
<x-tad-bigger> }</x-tad-bigger>
<x-tad-bigger> catch (Exception ex)</x-tad-bigger>
<x-tad-bigger> {</x-tad-bigger>
<x-tad-bigger> }</x-tad-bigger>
<x-tad-bigger> }</x-tad-bigger>
<x-tad-bigger> }.start();</x-tad-bigger>
<x-tad-bigger>}</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>My SVG example looks like this:</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger><?xml version="1.0" encoding="iso-8859-1" standalone="no"?></x-tad-bigger>
<x-tad-bigger><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"</x-tad-bigger>
<x-tad-bigger>"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"></x-tad-bigger>
<x-tad-bigger><svg viewBox="0 0 400 400" ></x-tad-bigger>
<x-tad-bigger> <g id="relief" visibility="visible"></x-tad-bigger>
<x-tad-bigger> <rect x="10" y="10" width="390" height="390" fill="none" stroke="black" stroke-width="2"/></x-tad-bigger>
<x-tad-bigger> <circle style="fill:none;stroke:black;" cx="200" cy="200" r="100"/></x-tad-bigger>
<x-tad-bigger> </g></x-tad-bigger>
<x-tad-bigger> <g id="c" visibility="hidden"></x-tad-bigger>
<x-tad-bigger> <text x="200" y="200" style="font-family: sans-serif; font-size: 14pt;</x-tad-bigger>
<x-tad-bigger>stroke: none; fill: black;">Center</text></x-tad-bigger>
<x-tad-bigger> </g></x-tad-bigger>
<x-tad-bigger> <text x="50" y="50" style="font-family: sans-serif; font-size: 14pt;</x-tad-bigger>
<x-tad-bigger>stroke: none; fill: black;">UL</text></x-tad-bigger>
<x-tad-bigger> <text x="50" y="350" style="font-family: sans-serif; font-size: 14pt;</x-tad-bigger>
<x-tad-bigger>stroke: none; fill: black;">BL</text></x-tad-bigger>
<x-tad-bigger> <text x="350" y="50" style="font-family: sans-serif; font-size: 14pt;</x-tad-bigger>
<x-tad-bigger>stroke: none; fill: black;">UR</text></x-tad-bigger>
<x-tad-bigger> <text x="350" y="350" style="font-family: sans-serif; font-size: 14pt;</x-tad-bigger>
<x-tad-bigger>stroke: none; fill: black;">BR</text></x-tad-bigger>
<x-tad-bigger> <line x1="190" y1="10" x2="190" y2="190" stroke="black" stroke-width="2"/></x-tad-bigger>
<x-tad-bigger> <line x1="10" y1="190" x2="190" y2="190" stroke="black" stroke-width="2"/></x-tad-bigger>
<x-tad-bigger></svg></x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>When I set: Rectangle aoi = new Rectangle(0,0,200,200); the area is smaller then one I choose.</x-tad-bigger>
<x-tad-bigger> When I set: Rectangle aoi = new Rectangle(200,200,200,200); nothing is being printed.</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>Please give me any suggestion what I’m doing wrong.</x-tad-bigger>
<x-tad-bigger> Thanks Bartek</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>