程序调用模板信息,生成模板数据时,提示报错,打印的消息后,显示pdf空白。
打开编译后classes目录下的pdf,显示
看到这个想到应该是编译阶段导致pdf信息受影响,需要在编译阶段处理,增加排除pdf和使用的字体库等操作
解决办法,在pom文件中加上
具体代码:
<!--排除字体和pdf文件后,读取才能正常,避免被编译了-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>TTC</nonFilteredFileExtension>
<nonFilteredFileExtension>ttc</nonFilteredFileExtension>
<nonFilteredFileExtension>TTF</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
再次运行,可以完美导出信息!
附开发中遇到的问题(项目打成jar运行时,文件读取)
//本地开发中可以读取,jar方式运行后,不行
// File template = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX.concat("XXX.pdf"));
// String path=template.getPath();
ClassPathResource resource = new ClassPathResource("XXX.pdf");
File template = resource.getFile();
String path=template.getPath();
//输出流
out=new FileOutputStream(url);
//读取模板
reader=new PdfReader(path);
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, bos);