如何用java实现汇票生成pdf?

该采用什么方案来生成pdf?
目前想到的方案有2个:
方案1,利用模板写,但是否支持某个字段的值过长会自动换行?例如“开户银行”
是否支持动态显示否?例如不用显示背书信息
方案2,正常代码写模板,但这样定位位置比较麻烦
请教各位高人来回答

https://blog.csdn.net/viplisong/article/details/84068964