Inkscape также можно использовать для преобразования PDF в SVG.Это на самом деле замечательно хорошо, и хотя код, который он генерирует, немного раздут, по крайней мере, в нем, похоже, нет той проблемы, с которой вы сталкиваетесь в своей программе.Я думаю, что было бы сложно интегрировать его непосредственно в Java, но inkscape предоставляет удобный интерфейс командной строки для этой функции, поэтому, вероятно, самый простой способ получить к нему доступ через системный вызов.
Чтобы использовать интерфейс командной строки Inkscape для преобразования PDF в SVG, используйте:
inkscape -l out.svg in.pdf
Который вы, вероятно, затем сможете вызвать с помощью:
Runtime.getRuntime().exec("inkscape -l out.svg in.pdf")
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Runtime.html#exec%28java.lang.String%29
Я думаю, что exec () является синхронным и возвращается только после завершения процесса (хотя я не уверен на 100% в этом), так что вы должны просто прочитать «out.svg» после этого,В любом случае, поиск в Google "java system call" даст больше информации о том, как правильно выполнить эту часть.