просто ... бесплатно ... pdf ... произвольный ввод ... По крайней мере, требования просты и разумны.
Серьезно, эти требования просто не будут выполнены. Если вы готовы платить деньги за библиотеку, которая делает некоторые из этого, вы можете проверить Amyuni - Это отличная библиотека, но тип материала, который вы запрашиваете, прямо на родной земле win32 - не то, что произойдет в Java. И даже с этим все будет не просто.
Полагаю, вы могли бы что-то сделать и с Ghostscript (многие бесплатные конвертеры PDF используют его). Но даже тогда вам все равно придется иметь дело с преобразованием из произвольной входной проблемы.
Существуют другие доступные библиотеки, которые могут отображать множество различных форматов файлов (даже без встроенного приложения) - возможно, что-то подобное будет работать. Вот один из них (сейчас принадлежит Oracle, так что вы знаете, что это должно быть хорошо ;-): Outside In .
(Кстати - iText определенно не собирается делать то, о чем вы просите. Мне нравится iText, я использую iText - черт, я разработчик для части iText - но это определенно не драйвер печати PDF, что больше соответствует тому, что вы собираетесь).