我正在尝试使用openpdf
作为动态字段。
Maven:
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.8</version>
</dependency>
查找字段:(动态查找字段名称)
Type type = getClass().getGenericSuperclass();
ParameterizedType pt = (ParameterizedType) type;
Class<V> entity = (Class<V>) pt.getActualTypeArguments()[0];
// create Header
List<String> columnNames = new ArrayList<>();
Field[] superFields = entity.getSuperclass().getDeclaredFields();
for (Field field : superFields) {
if ( ! field.getName().equals("serialVersionUID"))
columnNames.add( field.getName() );
}
Field[] fields = entity.getDeclaredFields();
for (Field field : fields) {
if ( ! field.getName().equals("serialVersionUID"))
columnNames.add( field.getName() );
}
for (String columnName : columnNames) {
cell.setPhrase( new Phrase(columnName));
table.addCell(cell);
}
document.add(table);
document.close();
如何改变这一动态?(我只对User
对象使用此代码)
List<User> users = repository.findAll();
for (User user : Users) {
cell.setPhrase( new Phrase( user.getId() ));
cell.setPhrase( new Phrase( user.getFirstName() ));
cell.setPhrase( new Phrase( user.getLastName() ));
}
有更好的PDF导出库吗?
谢谢
1条答案
按热度按时间n9vozmp41#
我为这个问题写了一些代码:
首先,我可以得到命名方法的列表:
第二次转换为
List<Object>
:和结尾:
现在我可以用动态对象和字段调用方法了