Itext+POI将Excel转换为PDF
来源:互联网 发布:pdf.js 缓存问题 编辑:程序博客网 时间:2024/05/22 14:53
需求:Itext+poi将多份excel(多个sheet)、图片转换为PDF,并最终合并成一份PDF,在合并的PDF文件每页要加盖公司印章
重点:
- 样式设置(字体颜色、字体大小、斜体、加粗、下划线、删除线、中文显示、单元格背景色、边框粗细、边框颜色、字体水平居中、垂直居中)
- 读取单元格(合并单元格)里的图片(2003和2007)
- 合并单元格处理
- 单元格内容里的整数、浮点数、日期类型的处理
- Itext页码标注
- 合并多个PDF文件
- 加盖印章
遗留问题:
- poi可以通过font.getFont获取字体样式,但是itext里通过font.setFamily设置了无效
- excel里设置了边框,转换成PDF后边框如有重叠显示的线条就会加粗,所以我干脆就直接设置所有边框为0.1f
- excel里的图片只能固定在单元格内才能在转换为PDF后显示在指定的位置
下面两张图,只有第二张图(固定了图片显示在A1-F19)才能被读取出来放在指定的位置,图二读取出来了不知道要如何指定放置的位置,希望有大神能给出更好的建议。
图一:
图二:
- poi可以设置单元格边框为虚线,但是itext没有找到相关API
- excel里插入的形状(例如:箭头、矩形、三角形)不知道要如何读取,最后是要求业务用符号代替的
- poi获取行数列数不准确,sheet.getLastRowNum()和sheet.getPhysicalNumberOfRows(),有的时候前面那个获取的是准确的,有的时候是后面的是准确的。
- 通过cell.setCellType(cell.Cell_TYPE_STRING),cell.getStringCellValue();可以获取整数、浮点数,日期类型(2015.5.6)但是excel里的日期如果写成2015/9/10获取的就是42257
- 如果一个单元格里的字体颜色有多种,最后只能显示一种颜色
- 获取的单元格背景颜色不够精确,excel模板内容相同的xls和xlsx两份文件转出来的PDF效果不一致
- 合并PDF文件时,无法统一页面的横纵向显示,并且无法获取到准确的页面宽度以设置页码的显示位置
重点里标注的是我已经实现了的,遗留问题是我暂时没解决的。做这个的时候参考了很多前人的资料,但是还是发现有很多问题,有些问题有人遇到提出来了,但是网上也没有明确的解决办法,有些问题是压根儿都没人提出来,网上的很多例子都很简单,如果表格复杂,转PDF就有问题,所以建议公司一定要用这个的话,最好购买专门的软件。
PS:不提供代码了,代码在公司电脑上,没办法拿出来,如果有问题,可以邮件我,18216308604@163.com。如果有大神能解决我的遗留问题,欢迎留言讨论。
0 0
- Itext+POI将Excel转换为PDF
- iText – 使用Java将HTML转换为PDF
- 利用pdfbox和itext包将pdf转换为图片
- C# 将Excel转换为PDF
- itext实现HTML转换为PDF
- iText导出pdf,poi导出excel并下载到客户端
- iText导出pdf,poi导出excel并下载到客户端
- poi 将excel转换为html的java代码
- 利用POI将Excel文档转换为Html
- excel转换为pdf
- 将office文档(word,excel,powerpoint)转换为pdf
- 将office文档(word,excel,powerpoint)转换为pdf
- 如何将PDF文档转换为Excel文件
- 将Word或Excel文件转换为PDF不用office
- vb.net 将excel文件转换为PDF文件
- C#, VB.NET如何将Excel转换为PDF
- 通过jxl和itext 将excel转化成pdf
- 在线excel转换为pdf
- 互联网的规模和发展速度远远超出网络设计先驱者的预想
- Leetcode: Bulls and Cows
- HttpURLConnection用法
- 用BCP命令将TSV,CSV等包含日期数据的字段导入SqlServer数据库
- Java基础--集合框架Conllection(LinkedList、ArrayList)
- Itext+POI将Excel转换为PDF
- cf #310 E. Case of Chocolate (upper_bound())
- MAC MacVim及Vundle安装
- 7 Software Testing Myths
- maven部署war文件到Tomcat
- 设计模式之六大原则
- NDK和静态库
- 互联网给政府和社会都增加了权力
- GBK/GB2312编码问题分析以及java获取汉字国标码