Вы можете попробовать iText - но я не уверен, справится ли он со всем, что вам нужно.
Более того, всегда лучше, если вы исследуете много вариантов, а затем решаете, что вы можете и не можете делать. Во многих случаях не будет никаких библиотек / API, которые из коробки будут поддерживать все, что вы просите.